如何延迟警报?

时间:2010-12-23 15:53:43

标签: jquery delay alert

我正在尝试延迟警报,但无法使其工作,当#foo悬停并且尺寸正在增加时,它总是弹出:

$('#foo').hover(function() {
 $(this).animate({width :'400px'}, 'slow');
},
function() {
 $(this).delay(2000).animate({width :'40px'}, 'slow');
alert('Im an alert message');
});

但我希望它只在#foo减少回原始状态后显示...

4 个答案:

答案 0 :(得分:6)

如何使用回调?

$('#foo').hover(function () {
    $(this).animate({
        width: '400px'
    }, 'slow');
}, function () {
    $(this).delay(2000).animate({
        width: '40px'
    }, 'slow', function () { //callback function, which runs very next to .animate()
        alert('Im an alert message');
    });
});

答案 1 :(得分:2)

您需要在回调中执行此操作。这是一个在动画完成时调用的函数:

$(this).delay(2000).animate({width :'40px'}, 'slow', function(){
    alert("I'm an alert message");
});

请参阅animate API

答案 2 :(得分:1)

看起来你想在animate函数上使用回调?

http://api.jquery.com/animate/

$(this).delay(2000).animate({width :'40px'}, 
    'slow',
    function () {
        alert('Im an alert message');
    }
);

答案 3 :(得分:-1)

使用setTimeout函数:http://www.w3schools.com/js/js_timing.asp

$('#foo').hover(function() {
 setTimeout(function(){$(this).animate({width :'400px'}, 'slow');}, 3000);
}

以上代码应延迟3秒钟。