2013-07-22 5 views
-3

Помощь цикла обратного вызова JQueryJQuery Помощь цикла обратного вызова JQuery

my Fiddle

Кнопка петля Ошибка 2

Шаг 1: Нажмите кнопку Button1 => обратный вызов Button2

Шаг 2: CLick Button2 => обратный вызов Button2 + callback Button2

Шаг 3: Нажмите кнопку3 => обратный вызов Button2 + callback Button2 + callback Button2

.....

Шаг п: Нажмите кнопку * п * => перезвонит Button2 * N


Помощь затруднительное:

Нажмите Button1 п = > callback Button2 * 1

спасибо!

+0

'для (вар я = 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, который больше не будет делать то, что вы описали в своем комментарии. –

Смежные вопросы