2009-10-02 4 views
3

Я связывание выпадающего спискаКак отвязать событие

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

Приведенных выше код будет вызываться много раз.

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

+0

Я не уверен, что вы пытаетесь добиться от вопроса. Вы не хотите связывать событие так, что оно происходит только один раз? Или просто отвяжите событие после того, как оно будет вызвано в определенной точке вашего скрипта? – hitautodestruct

ответ

7

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

("#dropdownlist").one('change',function(){}); 
8

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

$('#dropdownlist').unbind('change'); 
2

Используйте следуя логике:

var f = function() { 

} 

$('#xx').bind('change', f); // for bind function f 
$('#xx').unbind('change', f); // for unbind unbind function f 
2

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

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

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

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

и

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

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

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

НТН Alex

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