【问题标题】:jQuery: Delayed fade unless clicked?jQuery:延迟淡入淡出,除非点击?
【发布时间】:2011-03-11 15:10:26
【问题描述】:

所以我目前有这个:

$('#message_notice').click(function(){
   $(this).fadeOut('slow'); 
});

$('#message_notice').delay(8000).fadeOut('slow');

我最终想要做的是,如果点击了一条消息,然后继续并淡出它。否则,在 X 秒后自动淡出。

我可以做一个或另一个,但如果我有两个(如我的例子),那么点击不起作用(只是延迟淡入淡出)。

我正在使用 jQuery 1.4.4。

【问题讨论】:

    标签: javascript jquery effects fade


    【解决方案1】:

    您需要在点击处理程序中调用.stop(true) 来取消您放入队列中的delay()

    新代码应该是这样的

    $('#message_notice').click(function(){
        $(this).stop(true).fadeOut('slow'); 
    });
    
    $('#message_notice').delay(8000).fadeOut('slow');
    

    【讨论】:

      【解决方案2】:

      那是因为当你跑步时

      $('#message_notice').delay(8000).fadeOut('slow');
      

      您正在创建一个动画队列,您的

      $('#message_notice').fadeOut('slow');
      

      如果有人点击,就会被附加。

      有关解决方案,请参阅 SLaks 的答案,他们发布的速度比我写完的速度还要快...

      【讨论】:

        猜你喜欢
        • 2012-12-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-16
        • 2012-01-02
        • 2014-12-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多