我正在搜索一个事件监听器,我可以查看.show('drop', 500)
的动画是否已完成。
我想像这样使用它
if($('#id').show('drop', 500) == complete){
// do some stuff
}
是否有针对此案例的事件监听器?
亲切的问候
答案 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()
方法的函数。
答案 6 :(得分:0)
为什么不使用show();
方法的回调?