我有一个元素设置为在1500ms延迟后淡出。即:像:
$("<div>My Element</div>").appendTo("body").delay(1500).fadeOut(400);
有没有一种方法可以延长这个延迟期,同时元素的淡出还有待处理?
答案 0 :(得分:1)
来自http://api.jquery.com/delay/
.delay()方法最适合在排队的jQuery之间延迟 效果。 因为它是有限的 - 例如,它没有提供取消延迟的方法。 delay()不是JavaScript的原生setTimeout函数的替代品, 这可能更适合某些用例。
所以我担心你只能使用javascript settimeout()
。
如果我错了,请纠正我。 :)
P.S。只是要补充一点,您可以使用.clearQueue()
取消延迟动画。
答案 1 :(得分:1)
setTimeout() {
function() {
$("<div>My Element</div>").appendTo("body").fadeOut(400);
}, 1500
}
答案 2 :(得分:0)
.delay()可能使用setTimeot()或setInterval()。我不确定你想要得到什么效果,但如果你想重置计时器(或重启它),你可以这样做:http://jsfiddle.net/rkw79/4AevQ/
var t;
$('div').click(function() {
clearTimeout(t);
t= setTimeout("$('div').fadeOut(400);", 1500);
});
$('div').trigger('click');
除非用户点击它,否则上面的代码会淡出'div'。