我有一个工具提示出现,我想在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/

10-12 00:37