为什么 .delay() 不起作用
Why .delay() doesn't work?
我想one
设置这个值,然后在 5 秒后这个值two
div
。我该怎么做?
这是我尝试过的,但我不知道为什么它不起作用:
$('div').html('one').delay(5000).html('two');
.delay()
用于队列中的项目,如动画。您可以改用.setTimeout
。
根据jQuery文档:
.delay() 方法最适合在排队的 jQuery 效果之间延迟。因为它是有限的——例如,它不提供取消延迟的方法——.delay() 不能替代 JavaScript 的原生 setTimeout 函数,后者可能更适合某些用例。
所以,你的代码将是这样的:
var temp = $('div').html('one');
setTimeout(function(){temp.html('two');}, 5000);
setTimeout
的问题在于它破坏了很好的Jquery链接。您可以通过将即时函数包装在queue
调用中来保持代码流畅:
$('div')
.queue(function() {
$(this).html('one').dequeue();
})
.delay(2000)
.queue(function() {
$(this).html('two').dequeue();
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div></div>
您甚至可以添加一个小的"插件"来减少冗长:
$.fn.queued = function(meth) {
var args = [].slice.call(arguments, 1),
$$ = $(this);
return this.queue(function() {
$$[meth].apply($$, args).dequeue();
});
}
然后:
$('div')
.queued('html', 'one')
.delay(2000)
.queued('html', 'two')
<</div>
div class="answers"> 也许这对你有帮助?
$('div').html('one');
setTimeout(function(){
$('div').html('two');
}, 5000);
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 监视函数从服务返回不起作用,但作用域函数起作用
- 幻灯片滚动javascript不起作用
- 简单的javascript在Shopify中不起作用
- Recaptcha在IE7和IE8中不起作用
- Ember Data DS.Model's set函数不起作用
- JsFiddle上的鼠标事件不起作用
- 我的AngularJS表达式没有'不起作用
- 点击按钮输入不起作用
- 面向对象的Javascript代码在IE7中不起作用
- 分部隐藏在jquery中不起作用
- 在phonegap应用程序内部重定向不起作用
- Array.length似乎不起作用;console.log则显示其他情况
- $ionicplatform内的$scope不;不起作用
- 我的javascript for循环不起作用
- Meteor-添加用户自定义字段的方法不起作用
- 为什么 .delay() 不起作用
- 在ajax调用中设置Delay不起作用
- 为什么delay()不起作用
- .delay()函数对attr()函数不起作用