jquery 延时
jQuery 延时方法
在jQuery中,延时操作可以通过多种方式实现,包括使用内置的延迟函数或结合JavaScript原生方法。以下是几种常见的延时实现方式:
使用 setTimeout 函数
setTimeout 是JavaScript原生方法,jQuery可以直接调用。适用于简单的延时执行。
setTimeout(function() {
// 延时执行的代码
alert('延时3秒后执行');
}, 3000);
使用 delay() 方法
jQuery的 delay() 方法主要用于动画队列的延时,通常与 queue() 或动画方法(如 fadeIn())配合使用。
$('#element').delay(2000).fadeIn();
结合 deferred 对象
jQuery的 Deferred 对象可以更灵活地处理异步操作,包括延时。
$.when($.Deferred(function(defer) {
setTimeout(defer.resolve, 5000);
})).done(function() {
console.log('5秒后执行');
});
使用 promise 和 then
通过 $.Deferred() 创建延时,并用 then 处理回调。

var delay = $.Deferred();
setTimeout(function() {
delay.resolve();
}, 1000);
delay.promise().then(function() {
console.log('1秒后执行');
});
注意事项
delay()仅适用于jQuery动画队列,普通代码需用setTimeout。- 清除延时可以使用
clearTimeout,需保存setTimeout的返回值。var timer = setTimeout(function() {}, 1000); clearTimeout(timer);






