我有一个AJAX功能,可以在成功时显示通知。但是,用户可能会在短时间内呼叫它几次,从而创建一个通知队列。我试图消除阙并显示通知一次
AJAX功能
function update(updateid, div) {
$.ajax({
type: "GET",
url: 'file.php',
data: {"updateid":updateid,"div":div},
success: function(data) {
$('.notification').html(data).hide().fadeIn(300);
$('.notification').delay(2000).fadeOut();
}
});
}
我曾尝试添加clearQueue()几次
这可以防止通知工作
$('.notification').html(data).hide().fadeIn(300).clearQueue();
$('.notification').delay(2000).fadeOut();
这可以防止通知淡出
$('.notification').html(data).hide().fadeIn(300);
$('.notification').delay(2000).fadeOut().clearQueue();
显然我没有使用clearQueue();没错,有人能指出我正确的方向吗?
答案 0 :(得分:0)
尝试
$('.notification').clearQueue().delay(2000).fadeOut();
在延迟之前使用clearQueue()。
<小时/> 您也可以使用.stop()
$('.notification').stop(true,true).delay(2000).fadeOut();
答案 1 :(得分:0)
为什么不使用标志变量。
var notificationShowing = false;
[...]
success: function(data) {
if (!notificationShowing) {
notificationShowing = true;
$('.notification').html(data).hide().fadeIn(300);
$('.notification').delay(2000).fadeOut(function() { notificationShowing = false});
}
}