使用带延迟的触发方法

时间:2012-01-03 11:04:20

标签: javascript jquery

我会在执行前使用触发器方法延迟,我尝试这样:

$('#open-contact').delay(3000).trigger('click');

但代码会立即运行。

你们中有人可以帮助我吗?

非常感谢

3 个答案:

答案 0 :(得分:15)

jQuery doc says

  

.delay()方法最适合延迟排队的jQuery效果。因为它是有限的 - 例如,它没有提供取消延迟的方法 - .delay()不能替代JavaScript的本机setTimeout函数,这可能更适合某些用例。

所以,我会把它重写为

setTimeout(function() {
    $('#open-contact').trigger('click');
}, 3000);

答案 1 :(得分:5)

关于延迟的jQuerys文档:

  

.delay()方法最适合延迟排队的jQuery效果。因为它是有限的 - 例如,它没有提供取消延迟的方法 - .delay()不能替代JavaScript的本机setTimeout函数,这可能更适合某些用例。

换句话说,你应该使用setTimeout(),即:

setTimeout(function () { $('#open-contact').trigger('click'); }, 3000);

答案 2 :(得分:5)

尝试:


$('#open-contact').delay(3000).queue(function() {
    $(this).trigger('click');
});