我有以下代码:
$(document).ajaxComplete(function () {
tips();
});
当ajax事件完成时,会再次运行提示功能!然而,提示函数ALSO包含ajax请求,所以它调用自己,这不是我想要做的!
如果ajax事件完成,我怎么能运行提示除非是ajax请求的提示
答案 0 :(得分:4)
可以设置ajaxComplete()
的回调函数以接收有关ajax请求的详细信息。然后,您可以在进行ajax调用时传递一个特殊设置,该调用允许您告诉您何时应该,或者不应该调用提示功能:
function tips() {
var settings = {
is_tips_call: true
};
$.ajax('#', settings);
alert("In tips");
}
$(document).ajaxComplete(function(event, xhr, settings) {
if ('is_tips_call' in settings && settings.is_tips_call == true) {
// Do nothing
return;
}
tips();
});
我为此制作了jsFiddle,以便您可以看到它的实际效果。这比接受的答案更可取,请参阅我的评论以获取详细信息。
答案 1 :(得分:0)
修改强>
请勿使用我的解决方案。使用下面的mmcnickle中的那个。
在你的tips();
函数中你可以设置一个bool标志吗?有点像...
var isTips = false;
function tips(callBack){
isTips = true;
// rest of your code
if(typeOf(callBack) == 'function'){
callBack();
}
}
$(document).ajaxComplete(function(){
if(!isTips){
tips(function(){
isTips = false;
});
}
});