jQuery clearQueue无法正常工作

时间:2014-02-11 01:28:05

标签: javascript jquery ajax

我有一个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();没错,有人能指出我正确的方向吗?

2 个答案:

答案 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}); } }