如何清除(删除)jQuery 中所有排队的函数?

Nad*_*ram 2 queue jquery function

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

\n\n
var a = $(\'<div class="notification" style="bottom:\'+ind+\'px">Message envoy\xc3\xa9 \'+i+\'<span class="close">x</span></div>\')\n   .fadeIn(1000,"linear").delay(5000).fadeOut(3000,"linear");\n
Run Code Online (Sandbox Code Playgroud)\n\n

我想删除“fadeIn”、“delay”和“fadeOut”功能。我尝试使用 dequeue() 和 clearQueue() 但它无法正常工作。那么如何做到这一点呢?

\n

jfr*_*d00 5

一旦开始动画,您可以通过在正在动画的对象上调用此方法来停止它并清除任何其他排队的动画:

\n\n
$(yourobj).stop(true);\n
Run Code Online (Sandbox Code Playgroud)\n\n

或者,在您的情况下(因为 jQuery 对象位于变量 中a,所以它将是:

\n\n
a.stop(true);\n
Run Code Online (Sandbox Code Playgroud)\n\n

正如您从jQuery 文档中.stop()看到的,第一个参数告诉它清除排队等待的任何其他动画的队列。

\n\n
\n\n

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

\n\n
\n\n

如果您真正想做的是:

\n\n
    \n
  1. 弹出气泡,当单独放置时会淡入,在屏幕上停留一定时间然后淡出
  2. \n
  3. 如果在气泡显示的任何时候,用户将鼠标悬停在其上,您希望将其捕捉到完全不透明并停止任何动画,以便只要鼠标悬停在其上,它就会永远保留。
  4. \n
  5. 然后,如果鼠标移出它,您希望它在屏幕上停留一小段时间,然后淡出。

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

您可以在这里看到它的实际效果:http ://jsbin.com/ziwexifo/1/edit

\n\n

在你的 jsBin 代码中,老实说,我不知道你想用代码做什么.promise().done(),因为我发现变量名称是非描述性的,所以它们不能帮助我知道你想做什么,并且有暂无评论。如果您打算使用.stop()提前取消动画序列,您可能需要做一些与使用 来完成.promise().done()所有清理工作不同的事情。我在代码中使用了动画完成函数。

\n