Javascript 在()上添加带有$(“body”)的ajaxStart和ajaxStop
我试图取消在ajax调用过程中提交表单的功能—这是一个很长的查询,我不希望在最初创建表单时再次提交表单。然而,我似乎是连接不正确Javascript 在()上添加带有$(“body”)的ajaxStart和ajaxStop,javascript,jquery,Javascript,Jquery,我试图取消在ajax调用过程中提交表单的功能—这是一个很长的查询,我不希望在最初创建表单时再次提交表单。然而,我似乎是连接不正确 $(function(){ $("body").on("click", "#process", function(){ submit_form(); }); $("body").on("ajaxStart", "*", function(){ $("body").off("click", "#pr
$(function(){
$("body").on("click", "#process", function(){
submit_form();
});
$("body").on("ajaxStart", "*", function(){
$("body").off("click", "#process", submit_form);
alert("test");
var div = $("<div>", {
id: "loading",
html: "Working"
}).prependTo("body");
});
$("body").on("ajaxStop", "*", function(){
alert("done");
$("#loading").remove();
});
});
我看不到分区被连接或警报被触发。我觉得我的on语句中的*选择器可能有问题。不过我不知道。我已尝试将ajaxStart与on连接,以便可以删除动态添加的$loading。我将通过设置一个变量来允许/禁止AJAX调用来做更多的事情:
var processing = false;
$('form').on('submit', function(e){
e.preventDefault();
if(processing === false){
processing = true;
// allow AJAX here
$.ajax({
url: 'sample.com/process',
type: 'POST',
complete: function(){
processing = false;
}
});
}
});
很可能是您错误地绑定到ajaxstop和start事件。你去过api吗?为什么要使用$body.onajaxStop,*呢?你是从别的地方抄来的吗?在这种情况下,它真的没有任何意义。@KevinB是的,我看过API。它没有显示如何使用ajaxStart with onMaybe,因为。。。它不应该与.on?@thomas一起使用,而你对.off的语法很奇怪