Свойства обработчика события


#1

Всем привет!
Подскажите пожалуйста, как можно устанавливать свойства обработчиков событий в элементах документа?
Буду рад вашим ответам!


#2

Привет. Обработчик события - функция. Получается, что свойства обработчика это свойства функции. Установить свойства функции можно так же как и свойства объекта function.property = value. Может имеется в виду как устанавливать обработчики событий на элементах документа?

По обработке событий можно псомотреть на MDN и на ITVDN
есть два основных element.on[event] = handler или element.addEventListener("event", handler)

Но возможно я не правильно понял вопрос. Если да, то, пожалуйста, перефразируйте.


#3

Свойства обработчиков событий в элементах документа можно также устанавливать, определяя значения атрибутов в соответствующих HTML-тегах. В этом случае значение атрибута должно быть строкой программного кода на языке JavaScript. Этот программный код должен быть не полным объявлением функции обработчика события, а только ее телом. То есть реализация обработчика события в разметке HTML не должна заключаться в фигурные скобки и предваряться ключевым словом function. Например:

<button onclick="alert('Спасибо');">Щелкните здесь</button>

#4

Вы забыли одну деталь важную - если значение HTML-атрибута обработчика события состоит из нескольких JavaScript-инструкций, они должны отделяться точками с запятой либо значение атрибута должно располагаться в нескольких строках.


#5

Да, согласен – пропустил этот момент. Но важно также помнить, что некоторые типы событий предназначены для браузера в целом, а не для какого-то конкретного элемента документа. Обработчики таких событий в языке JavaScript регистрируются в объекте Window. В разметке HTML они должны помещаться в тег <body>, но браузер зарегистрирует их в объекте Window.


#6

Мне все равно кажется, что это не правильный термин, правильно - обработик событея как свойство или обработчик события как атрибут, но не свойство обработчика. Если событие как атрибут - оно может быть задано в разметке через атрибут, так как Вы написали

<button id="btn" onclick="alert('Спасибо');">Щелкните здесь</button>

а если обработичк как свойство то может через свойство в коде

document.getElementById("btn").onclick = function() { alert('Спасибо'); }

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

А вообще по правиьному исопльзовать addEventListener