Удаление обработчиков событий дочерних элементов

#jquery #events #event-handling #unbind

#jquery #Мероприятия #обработка событий #отменить привязку

Вопрос:

Я пытаюсь отвязать обработчики событий (щелчок) от всех a-тегов, и почему-то это не работает. Ребята, вы знаете почему?

 // Remove eventhandlers
    row.find('a').each(function(){
        $(this).unbind('click');
        alert($(this).attr("onClick"));
    });
  

Он всегда будет выводить текущую функцию onClick.

Спасибо

Ответ №1:

jQuery .unbind() удаляет только обработчики, назначенные и поддерживаемые jQuery. На ваши встроенные обработчики это не влияет.

Если вы хотите удалить встроенный атрибут, используйте removeAttr() .

 row.find('a').each(function(){
    $(this).removeAttr('onClick');
    alert($(this).attr("onClick"));
});
  

http://api.jquery.com/removeattr/

Ответ №2:

 $('a').unbind('click');
  

или

 $('a').each(function() {
  return false;
});