2014-06-23 56 views
1

我想知道如何清除(删除)jquery中所有排队的函数?这是我的代码:如何清除(删除)jquery中所有排队的函数?

var a = $('<div class="notification" style="bottom:'+ind+'px">Message envoyé '+i+'<span class="close">x</span></div>') 
    .fadeIn(1000,"linear").delay(5000).fadeOut(3000,"linear"); 

我想删除的功能“淡入”,“延迟”和“淡出”。我尝试使用dequeue()和clearQueue(),但它无法正常工作。那么该怎么做?

在此先感谢。

+0

嗨,那些没有排队的功能,它们是链接的功能。你无法清除它。你需要为它工作 – Bharath

+0

你能举一个你想达到什么样的例子吗?就目前来看,你的问题很不明确。 – Steve

+0

@Steve:请看看这个链接:[链接](http://jsbin.com/tawix/2/edit)..你会在那里找到我所有的代码。事实上,我正在尝试通知我们在Facebook上发现的弹出泡泡。 –

回答

2

一旦你开始了一个动画,你可以阻止它,并通过调用这个在对象上清除任何其他排队的动画被动画:

$(yourobj).stop(true); 

或者,你的情况(因为jQuery对象是在变量a,这将是:

a.stop(true); 

你可以从jQuery doc for .stop()看到,第一个参数告诉它以清除排队去任何其他动画的队列


请注意,您的代码本身并不完整,因为您创建了一些DOM元素,但没有将它们添加到页面中,因此它们在您执行之前将不可见。我假设你有这个代码,但没有包含它。


如果你真正想要做的是这样的:

  1. 弹出泡的是,在它自己的意志淡入离开的时候,在屏幕上停留一定的时间,然后淡出
  2. 如果在泡泡出现的任何时候,用户将鼠标悬停在它上面,则需要将其捕捉到完全不透明的位置,并停止任何动画,以便只要鼠标悬停在它上面即可永久保留。
  3. 然后,如果鼠标移出它,你希望它留在屏幕上很短的时间,然后淡出。

     var a = $('<div class="notification" style="bottom:'+ind+'px">Message envoyé '+i+'<span class="close">x</span></div>') 
          .fadeIn(1000,"linear").delay(5000) 
          .fadeOut(3000, "linear", function() { 
           $(this).remove(); 
          }) 
          .mouseover(function() { 
           $(this).stop(true).css("opacity", 1); 
          }).mouseleave(function() { 
           $(this).delay(2000).fadeOut(3000, "linear", function() { 
            $(this).remove(); 
           }); 
          }); 
         $('body').append(a); 
    

你可以看到它在这里的行动:http://jsbin.com/ziwexifo/1/edit

在你jsBin代码,说实话,我不知道你想要做的.promise().done()代码,因为我找到变量名是什么非描述性的,所以他们不帮助我知道你想做什么,也没有评论。如果您打算使用.stop()过早取消动画序列,则可能必须执行与使用.promise().done()进行所有清理工作不同的操作。我在我的代码中使用了动画完成功能。

+0

好吧,我试着用stop(),但它仍然无法正常工作。顺便说一下,要了解我在做什么,请看看这个链接:链接..你会在那里找到我所有的代码。事实上,我正试图通知弹出泡泡,就像我们在Facebook上发现的一样。 –

+0

@NadimAkram - 看看你的代码的其余部分是为了什么目的?这是否回答你的问题如何清除这些动画?你需要非常清楚你要求的帮助,我想我已经回答了你的问题。 – jfriend00

+0

要了解我正在尝试做什么,请查看此链接:[link](http://jsbin.com/tawix/2/edit)。在那里你可以找到我的完整代码。提前致谢。 –

相关问题