Как отменить привязку события - PullRequest
3 голосов
/ 02 октября 2009

Я связываю выпадающий список

("#dropdownlist").change(function(){
    //Do stuff
});

Приведенный выше код вызывается много раз.

Как мне отменить привязку этого события, прежде чем связывать его каждый раз?

Ответы [ 4 ]

8 голосов
/ 02 октября 2009

Вы можете использовать метод unbind():

$('#dropdownlist').unbind('change');
7 голосов
/ 02 октября 2009

Вы можете использовать один вместо привязки:

("#dropdownlist").one('change',function(){});
2 голосов
/ 02 октября 2009

Кроме того, jQuery поддерживает пространства имен.

Например, скажем, у вас есть обработчики изменений, которые выполняют проверку, и обработчики изменений, которые помогают при наведении текста.

Вы можете зарегистрироваться:

$("#foo").bind("change.validation", doValidation() );

и

$("#foo").bind("change.helptext", toggleHelptext() );

и затем вы можете отменить привязку определенного набора перед повторным добавлением проверки, например

$("#foo").unbind("change.validation");
$("#foo").bind("change.validation", doValidation() );

НТН Alex

2 голосов
/ 02 октября 2009

Использовать следующую логику:

var f = function () {

}

$('#xx').bind('change', f); // for bind function f
$('#xx').unbind('change', f); // for unbind unbind function f
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...