我有一个工具提示出现,我想在1500毫秒后自动关闭,或者如果用户单击页面上的任意位置,则立即关闭。
我尝试了以下方法:
$('#action-result').fadeIn('fast').delay(1500).fadeOut('fast');
$('body').click(function(){
$('#action-result').fadeOut('fast');
});
但是无论出于什么原因,延迟似乎都得到了完全控制,并且在延迟结束之前不允许该元素发生任何其他事情。
编辑
多亏了Ohgodwhy和ThiefMaster,我唯一需要对click函数进行的操作是在其上添加了一个停止符,以清除之前触发的.delay()。
$('body').click(function(){
$('#action-result').stop().fadeOut('fast');
});
最佳答案
不要使用延迟,请使用setTimeout。
$('#action-result').fadeIn('fast', function(){
//callback for after fadeIn completes
setTimeout(function(){
$(this).fadeOut('fast');
}, 1500); //1500 is our delay
});
清除点击超时。
$('body').click(function(){
window.clearTimeout(); //timer cleared, now let's fadeOut.
$('#action-result').fadeOut('fast');
});
关于jquery - 自动关闭模式窗口,或单击关闭,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9848210/