Как addEventListener влияет на свойство onclick элемента DOM? - PullRequest
5 голосов
/ 27 марта 2011
element.onclick = function() { alert(1); } 

alert(element.onclick);

Приведенный выше код выведет function () {alert (1); }

Затем я продолжаю выполнять следующий код:

element.addEventListener('click', function() { alert(2); }, false);
alert(element.onclick);

Выход по-прежнему function () {alert (1); }

На самом деле при нажатии на элемент сейчас код addEventListener ('click', function () {alert (2);}, false); работает, это значит новая функция alert (2) записала в свойство onclick этого элемента. Но почему вывод остается неизменным?

Итак, что я хочу знать, при выполнении addEventListener , как изменилось свойство onclick ?

С нетерпением жду вашего ответа.

Ответы [ 2 ]

7 голосов
/ 27 марта 2011

OnClick является свойством DOM уровня 0. AddEventListener является частью определения DOM Level 2. Добавление обработчика события с помощью метода AddEventListener не изменяет свойство OnClick элемента, а добавляет слушателя в коллекцию прослушивателей события элемента. Вы можете узнать больше о событиях DOM Level 2 на http://www.w3.org/TR/DOM-Level-2-Events/events.html. Также есть хорошая статья на http://en.wikipedia.org/wiki/DOM_events.

2 голосов
/ 27 марта 2011

Атрибуты «onfoo» не зависят от системы управления обработчиками событий, доступ к которой осуществляется через «addEventListener ()». Лучше использовать один или другой, а не оба, и правильный выбор - более гибкий и ненавязчивый метод addEventListener () (если доступен).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...