2009-06-26 8 views
0

У меня есть кнопка, и написал две функции для одной и той же кнопкиUnbind не работает в 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");}) 
}); 

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

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

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

+0

Я не согласен со всем текстом в разделе «Как задавать вопросы Smart Way», но это актуально: http://catb.org/~esr/faqs/smart-questions.html#id306810 –

+0

@OP вы должны принять ответ Джонатана – CharlieMezak

ответ

6

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

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

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