我正在尝试延迟警报,但无法使其工作,当#foo悬停并且尺寸正在增加时,它总是弹出:
$('#foo').hover(function() {
$(this).animate({width :'400px'}, 'slow');
},
function() {
$(this).delay(2000).animate({width :'40px'}, 'slow');
alert('Im an alert message');
});
但我希望它只在#foo减少回原始状态后显示...
答案 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秒钟。