Хорошо так, я задаюсь вопросом, как развязать встроенное onclick событие в jQuery. Вы думали бы .unbind()
работал бы, однако это не делает.
Для тестирования этого на себя играйте вокруг со следующим HTML и JavaScript:
function UnbindTest() {
$("#unbindTest").unbind('click');
}
function BindTest() {
$("#unbindTest").bind('click', function() { alert("bound!"); });
}
<button type="button" onclick="javascript:UnbindTest();">Unbind Test</button>
<button type="button" onclick="javascript:BindTest();">Bind Test</button>
<button type="button" onclick="javascript:alert('unbind me!');" id="unbindTest">Unbind Button</button>
Как Вы видите, развязывание не развязывает встроенное onclick
событие... однако это действительно развязывает событие щелчка, добавленное с bind()
.
Так, я задаюсь вопросом, существует ли способ развязать встроенные onclick события за исключением выполнения следующего:
$("#unbindTest").get(0).onclick = "";
Спасибо
jQuery's unbind не работает на атрибутах onclick
- он работает только для функций, которые были добавлены через bind
и поэтому доступны в $(...).data('events')
. Вы должны использовать removeAttr
, чтобы удалить onclick
.
Прочитайте этот вопрос для получения дополнительной информации.
unbind
отключает обработчики событий, зарегистрированные с помощью bind
, а не назначенные через onclick
или другие атрибуты DOM0. Из документации:
Любой обработчик, прикрепленный с помощью
.bind ()
, может быть удален с помощью.unbind ()
.
Редактировать : Вы отключаете обработчики DOM0, очищая соответствующий атрибут элемента. Мне пришлось найти способ сделать это в jQuery: removeAttr
.