【发布时间】:2011-10-11 07:40:26
【问题描述】:
$('#click').click(function() {
$('#delay').delay(2000).css('background-color', '#c30000');
});
为什么delay() 调用不会延迟css() 调用?
【问题讨论】:
标签: javascript jquery
$('#click').click(function() {
$('#delay').delay(2000).css('background-color', '#c30000');
});
为什么delay() 调用不会延迟css() 调用?
【问题讨论】:
标签: javascript jquery
查看http://api.jquery.com/delay/ 和http://api.jquery.com/queue/
$(document).ready(function() {
$('#click').click(function() {
$('#delay').delay(2000).queue(function () {
$(this).css('background-color', '#c30000');
});
});
});
【讨论】:
使用 javascript 的 setTimeout():
setTimeout(function() {
$('#delay').css('background-color', '#c30000');
}, 2000);
【讨论】:
.delay() 方法最适合延迟在队列中的 jQuery 效果。因为它是有限的——例如,它不提供取消延迟的方法——.delay() 不能替代 JavaScript 的原生 setTimeout 函数,这可能更适合某些用例。
因此,基本上,在您的场景中,超时是比延迟更好的方法,因为您不在效果之间。
【讨论】:
delay() 仅适用于 jQuery effects。
改用基本的setTimeout 呼叫。
【讨论】: