Отвязать не работает в jQuery

У меня есть кнопка и я написал две функции для одной и той же кнопки

Как изначально

  $("#FieldSetting .button").eq(0).unbind('click');
  $('.button').eq(0).click(function(){alert('initally');})

позже в jQuery, когда я нажимаю на div, я написал другую функцию, которая будет реализована той же кнопкой, что и

 $("#fb_contentarea_col1down21 div").live("click", function(){
       $("#FieldSetting .button").eq(0).unbind('click');
       $('.button').eq(0).click(function(){alert("later");})
 });

В обоих случаях я отвязал события, но это не сработало.

Моя первая функция для кнопки работает изначально, но после того, как я использую вторую функцию, моя первая функция больше не работает; вторая функция никогда не отвязывалась.

Пожалуйста, предложите, как это решить.


person useranon    schedule 26.06.2009    source источник
comment
Я не согласен со всем текстом в статье «Как правильно задавать вопросы», но это актуально: catb.org/~esr/faqs/smart-questions.html#id306810   -  person Adriano Varoli Piazza    schedule 26.06.2009
comment
@OP, ты должен принять ответ Джонатана   -  person CharlieMezak    schedule 11.04.2012


Ответы (1)


Если вы запустите «unbind» в строке 1, а затем прикрепите новое событие в строке 10, самое последнее действие получит полномочия. То есть, что бы ты ни сделал в последний раз, это король.

В этом случае вы добавили функциональность .click() спустя долгое время после того, как запустили «отвязать». Unbind не похоже на live,, это не помешает вам когда-либо привязать новый набор функций к элементу — он только отменит привязку всего, что было привязано к нему до этого момента.

person Sampson    schedule 26.06.2009