Кратко
СкопированоСобытие клика на HTML-элементе. Когда пользователь кликает мышкой по странице, браузер определяет на каком элементе произошёл клик и создаёт событие click.
На события можно подписаться и выполнять JavaScript-код, когда событие произошло.
Как пишется
СкопированоПодписаться на все клики на странице:
document.addEventListener('click', function () { alert('Вы кликнули по странице!')})
document.addEventListener('click', function () {
alert('Вы кликнули по странице!')
})
Подписаться только на клики по кнопке (она должна быть на странице):
const button = document.getElementsByTagName('button')[0]// навешиваем обработчик на событие кликbutton.addEventListener('click', function () { alert('Вы кликнули по кнопке!')})
const button = document.getElementsByTagName('button')[0]
// навешиваем обработчик на событие клик
button.addEventListener('click', function () {
alert('Вы кликнули по кнопке!')
})
Как понять
СкопированоПодробнее о механизме событий читайте в статье «События».
В функцию-обработчик так же передаётся объект события, который содержит дополнительную информацию о клике. Самые полезные свойства:
detail— количество кликов, которые произвёл пользователь. 1 — для одиночного клика, 2 — для двойного и так далее.view— возвращает объектwindow, в котором произошло событие.
Чтобы получить доступ к объекту события, функция-обработчик должна принимать на вход параметр:
button.addEventListener('click', function (event) { // Напечатает количество кликов alert(event.detail)})
button.addEventListener('click', function (event) {
// Напечатает количество кликов
alert(event.detail)
})
Пример, использующий эти свойства:
На практике
Скопированосоветует
Скопировано🛠 С кликами есть тонкость. Если пользователь нажал кнопку мыши, увёл курсор из элемента и потом кнопку отпустил, то события click не произойдёт.
🛠 Можно обработать клики по любым HTML элементам: <div>, <p>, <button> — браузеры это умеют.
🛠 Некоторые мобильные браузеры (например, Safari Mobile) создают события click только на интерактивных элементах — <button>, <a>, <img>, <input> и так далее.
🛠 Мобильные браузеры так же порождают событие touch.