用于.show的jQuery事件监听器('drop',500)==完成

时间:2011-12-09 10:45:15

标签: jquery events show

我正在搜索一个事件监听器,我可以查看.show('drop', 500)的动画是否已完成。

我想像这样使用它

if($('#id').show('drop', 500) == complete){
// do some stuff
}

是否有针对此案例的事件监听器?

亲切的问候

7 个答案:

答案 0 :(得分:4)

您应该添加回调

$('#id').show('drop', 500, function(){
   //do something when the element has shown
}) 

这取自文档

  

如果提供,则动画完成后将触发回调。   这对于将不同的动画串联在一起非常有用   序列。回调不会发送任何参数,但设置为   DOM元素被动画化。如果多个元素是动画的,那么   重要的是要注意每次匹配都会执行一次回调   元素,不是整个动画的一次。

编辑 - 如果你的问题是你不想让用户与元素交互,而它显示你可以做这样的事情

function elementNotReady(){
    return false;
};
 //attach the events so that if the user clicks the element nothing happens
 $('#id').on("click", elementNotReady);


$('#id').show('drop', 500, function(){
   //Remove the handler when the animation finishes
   $('#id').off('click', elementNotReady);
}) 

答案 1 :(得分:1)

show函数的第3个参数是完整的回调:

$("#id").show(500, 'linear', function () {
  console.log("completed");
});

答案 2 :(得分:1)

您需要提供callback功能,请尝试以下操作:

$("#id").show('drop', 500, function() {
    // do some stuffs.
});

答案 3 :(得分:1)

大多数jQuery函数(如果不是全部的话)可以被赋予一个在完成某些事情后调用的函数。像这样:

$('#id').show('drop', 500, function () {
    // Do your thing
});

答案 4 :(得分:1)

$(#id).show('drop', 500,function(){
//do the stuff
});

答案 5 :(得分:0)

试试这个:

$("#id").show('drop', 500, function() {
    // stuff to do when 'show' animation finishes
});

最后一个参数是'回调'。这是一个传递给动画完成后运行的show()方法的函数。

Further reading here

答案 6 :(得分:0)

为什么不使用show();方法的回调?