我想设置此值"app": {
"background": {
"scripts": ["background.js", "assets/jquery.min.js"]
}
},
,然后在5秒后将此值one
设置为two
。我怎么能这样做?
这是我尝试过的,但我不知道它为什么不起作用:
div
答案 0 :(得分:2)
.delay()
用于属于队列的项目,如动画。
您可以改为使用.setTimeout
。
根据jQuery文档:
.delay()方法最适合延迟排队的jQuery效果。因为它是有限的 - 例如,它没有提供取消延迟的方法 - .delay()不能替代JavaScript的本机setTimeout函数,这可能更适合某些用例。
所以,你的代码将是这样的:
var temp = $('div').html('one');
setTimeout(function(){temp.html('two');}, 5000);
答案 1 :(得分:1)
也许这可以帮到你?
$('div').html('one');
setTimeout(function(){
$('div').html('two');
}, 5000);
答案 2 :(得分:1)
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>
&#13;
你甚至可以添加一个小插件&#34;减少冗长:
$.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')