我有一个工具提示,我希望在1500毫秒后自动关闭,或者如果用户点击页面上的任何位置立即关闭。
我尝试了以下内容:
$('#action-result').fadeIn('fast').delay(1500).fadeOut('fast');
$('body').click(function(){
$('#action-result').fadeOut('fast');
});
但无论出于何种原因,延迟似乎完全控制,并且在延迟结束之前不允许其他任何事情发生。
感谢Ohgodwhy和ThiefMaster,我需要对点击功能做的唯一想法是为它添加一个停止来清除之前触发的.delay()。
$('body').click(function(){
$('#action-result').stop().fadeOut('fast');
});
答案 0 :(得分:1)
请勿使用延迟,请使用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');
});
答案 1 :(得分:1)
以下内容应达到所需的功能:
var x = setTimeout(function () { $("#action-result").fadeOut("fast"); }, 1500);
$("body").click(function () {
$("#action-result").fadeOut("fast");
clearTimeout(x);
});