我使用它来执行显示然后在10秒后销毁它。它有一个“x”关闭函数,如果你想早点关闭它,那么destroy_example()会杀死它。它不会叫它。
我做了一点测试,我把它缩小到函数中的delay()函数create_example()似乎锁定了id,其他函数会调用但我不能提前执行它。
function create_example(){
$("#my_example_id"+).fadeIn( 500 ).delay(10000).fadeOut(500, function() { $(this).remove(); });
return false;
}
function destroy_example(){
$("#my_example_id").fadeOut(200, function() { $(this).remove(); });
return false;
}
这是一个JSFIDDLE示例:http://jsfiddle.net/ymtc1z6k/4/
有什么方法可以解决这个问题吗?提前致谢。
答案 0 :(得分:1)
动画会附加到队列中。您可以中止当前动画并使用.stop()
清除队列:
$("#my_example_id").stop(true).fadeOut(200, ...);
来自文档:
如果在同一元素上调用多个动画方法,则后面的动画将放置在元素的效果队列中。这些动画直到第一个动画完成才会开始。调用
.stop()
时,队列中的下一个动画立即开始。如果clearQueue
参数的值为true
,则队列中的其余动画将被删除,并且永远不会运行。
答案 1 :(得分:0)
这个怎么样?
function create_example(){
$("#my_example_id"+).fadeIn( 500 );
return false;
}
function destroy_example(){
$("#my_example_id").fadeOut(200, function() { $(this).remove(); });
return false;
}
$(function() {
create_example();
setTimeout( destroy_example, 10000);
});