2013-07-22 101 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鏈接,這將不再執行您在評論中描述的內容。 –