2013-07-22 100 views
-3

帮助环回调的jQueryjQuery的帮助环回调的jQuery

my Fiddle

误差环路按钮2

步骤1:单击Button =>回调将Button2

步骤2:点击将Button2 =>回调Button2 +回调Button2

第3步:单击Button3 =>回调Button2 +回调Button2 +回调Button2

.....

步骤N:点击按钮* ň * =>回调将Button2 * N


帮助修复:

单击Button1 ñ = > callback Button2 * 1

谢谢!

+0

'为(VAR I = 0'这是什么?也描述了与句子你的问题可能有助于我们理解这个问题 –

回答

0

您正在事件中绑定事件。如果你仔细想想,如果你这样做,你所描述的是不可避免的...每次点击按钮一个绑定另一个点击事件到按钮2等等......

我重构了你的代码以实现如果你需要的话,你需要足够的灵活性来扩展。

JSBin fork

$(function() { 
    var body = $('body'), 
     button2 = body.find('#b2'); 

    var events = { 
     b1 : function(event) { 
      // Unbind this click event to avoid event stacking 
      body.off('click', '#b1', events.b1); 

      // Fade in the second button and bind its event 
      button2.fadeIn('fast', function() { 
       body.on('click', '#b2', events.b2); 
      }); 
     }, 
     b2 : function(event) { 
      // Unbind button2 event whilst managing its click logic 
      alert('Button 2 clicked'); 
      body.off('click', '#b2', events.b2); 

      // Hide button 2 and rebind the event to button 1 
      button2.fadeOut('fast', function() { 
       body.on('click', '#b1', events.b1); 
      ); 
     } 
    }; 

    // Bind the click event to button1 
    body.on('click', '#b1', events.b1); 
}); 
+0

我很抱歉,但我不知道你在说什么。 –

+0

错误:单击双击Button1 => Button2调用两次 错误:反复点击button1 => Button2调用连续 – tronghiep92

+0

更改JS bin链接,这将不再执行您在评论中描述的内容。 –