2012-07-06 65 views
0

如何禁用淡入淡出前的点击事件,并在淡出后启用它?jQuery禁用启用点击事件与淡入淡出

我的js代码:

$('a').click(function(){ 
    // disable click 
    $('div').fadeOut(400, 
     function(){ 
      $(this) 
       .css('background','yellow') 
      .fadeIn(1800, function(){} 
      // enable click 
      );}); 
}); 

我本可以使用的stop(),但我需要禁用/启用 PLZ修改我http://jsfiddle.net/WBWrM/1/ THX

回答

2

向该元素添加一个类,并且当该类存在时不要运行该事件。

$('a').click(function() { 
    var $this = $(this); 
    if ($this.hasClass('noClick')) return; 
    // disable click 
    $this.addClass('noClick'); 
    $('div').fadeOut(400, function() { 
     $(this).css('background', 'yellow').fadeIn(1800, function() { 
      // enable click 
      $this.removeClass('noClick'); 
     }); 
    }); 
}); 
+0

谢谢工作正常 – test 2012-07-06 21:53:16

+0

没问题。很高兴我能帮上忙 :-) – 2012-07-06 21:55:27

4

加为你的点击回调的第一行:

if ($('div').is(':animated')) return; 
+1

为什么这会被投票?它完美地回答了这个问题... – 2012-07-06 21:41:46

+0

我想知道:) – Utkanos 2012-07-06 21:43:04

+0

+1,这个作品很棒。我认为这是一个更好的主意,然后我建议。 – 2012-07-06 21:43:43