Всем привет!
Подскажите пожалуйста, как можно устанавливать свойства обработчиков событий в элементах документа?
Буду рад вашим ответам!
Привет. Обработчик события - функция. Получается, что свойства обработчика это свойства функции. Установить свойства функции можно так же как и свойства объекта function.property = value. Может имеется в виду как устанавливать обработчики событий на элементах документа?
По обработке событий можно псомотреть на MDN и на ITVDN
есть два основных element.on[event] = handler или element.addEventListener("event", handler)
Но возможно я не правильно понял вопрос. Если да, то, пожалуйста, перефразируйте.
Свойства обработчиков событий в элементах документа можно также устанавливать, определяя значения атрибутов в соответствующих HTML-тегах. В этом случае значение атрибута должно быть строкой программного кода на языке JavaScript. Этот программный код должен быть не полным объявлением функции обработчика события, а только ее телом. То есть реализация обработчика события в разметке HTML не должна заключаться в фигурные скобки и предваряться ключевым словом function. Например:
<button onclick="alert('Спасибо');">Щелкните здесь</button>
Вы забыли одну деталь важную - если значение HTML-атрибута обработчика события состоит из нескольких JavaScript-инструкций, они должны отделяться точками с запятой либо значение атрибута должно располагаться в нескольких строках.
Да, согласен – пропустил этот момент. Но важно также помнить, что некоторые типы событий предназначены для браузера в целом, а не для какого-то конкретного элемента документа. Обработчики таких событий в языке JavaScript регистрируются в объекте Window. В разметке HTML они должны помещаться в тег <body>
, но браузер зарегистрирует их в объекте Window.
Мне все равно кажется, что это не правильный термин, правильно - обработик событея как свойство или обработчик события как атрибут, но не свойство обработчика. Если событие как атрибут - оно может быть задано в разметке через атрибут, так как Вы написали
<button id="btn" onclick="alert('Спасибо');">Щелкните здесь</button>
а если обработичк как свойство то может через свойство в коде
document.getElementById("btn").onclick = function() { alert('Спасибо'); }
В любом случае через атрибуты ставить обработчики это плохо, в крайнем случае через свойства. Нужно всегда стараться делать JS ненавязчивым, чтобы было разделение разметки и кода.
А вообще по правиьному исопльзовать addEventListener