jQuery延迟三秒钟后无法正常工作

时间:2011-12-07 16:32:29

标签: javascript jquery

3秒后......警报提示未显示。我做错了什么?

$(function() {
    $("#test").live("click",function() { 
         $("#test2").delay(3000, function({
            alert('Hello!');
         }) );
        });
    });

4 个答案:

答案 0 :(得分:5)

.delay()不接受回调。使用setTimeout

$(function() {
    $("#test").live("click",function() { 
         setTimeout(function() { alert('Hello!'); }, 3000);
    });
});

我可以告诉你如何技术上使其与.delay()一起使用,但是举个例子,它就不合适了。

答案 1 :(得分:2)

无法记录delay()接受该表单中的参数。

$(function() {
    $("#test").live("click", function() {
        setTimeout(function() {
            alert('Hello!');
        }, 3000);
    });
});

确实delay()文档有粗体语句;

  

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

答案 2 :(得分:0)

我相信jQuery延迟用于延迟下一个链式函数调用。您应该使用setTimeout代替

$("#test").live("click",function() {
    setTimeout(function(){
        alert('Hello!');
    }, 3000);
});

答案 3 :(得分:0)

.delay()仅适用于使用fadeIn()等动画队列的jQuery效果方法......而.delay()不接受回调。

你必须像这样使用setTimeout()

$(function() {
    $("#test").live("click",function() { 
         setTimeout(function() {
            alert('Hello!');
         }, 3000);
    });
});