Nov*_*der 13 javascript jquery
我在这里使用html函数的延迟函数有奇怪的问题.
我使用设置了一个html文本 $( '#element').html( 'Hello World');
设置文本后我想让这个文本在3秒内消失.
所以下一行我写道:
$('#element').delay( 3000).html( ' ');
Run Code Online (Sandbox Code Playgroud)
这个不起作用,它将html设置为 无需等待3秒,看起来jquery正在跳过延迟功能.例如,使用fadeOut可以正常工作.我想这与延迟的队列事情有关.
但为什么这不起作用.它非常简单,等待3秒然后运行html函数.
有人可以提供建议吗?谢谢.
PS:对于您的信息,我使用jQuery 1.4.2
And*_*y E 24
delay()默认为动画队列,对于fadeOut()等效果.您应该使用setTimeout()代替:
window.setTimeout(function () {
$("#element").html(' ');
}, 3000);
Run Code Online (Sandbox Code Playgroud)
来自http://api.jquery.com/delay/:
jQuery.delay()最适合在排队的jQuery效果之间延迟,并且不能替代JavaScript的本机setTimeout函数,这可能更适合某些用例.
Nic*_*ver 16
.html()不是排队的功能.如果你想在动画队列中按顺序发生它,你必须.queue()自己做,如下:
$('#element').delay(3000).queue(function(n) {
$(this).html(' '); n();
});
Run Code Online (Sandbox Code Playgroud)
如果你不将动画链接或像这样的东西,使用setTimeout()或setInterval()(两者都适合的情况),直接,.delay()是只是一个包装的setTimeout(),而且也没有理由使用额外的代码/复杂性时,有没有这个必要.
| 归档时间: |
|
| 查看次数: |
17582 次 |
| 最近记录: |