Задать вопрос
@Donald_Duck

Как поймать любое событие на элементе?

Доброго времени суток!
Возможно ли через JS или jQuery отслеживать все события которые вызываются у элемента? Например, кликнули по полу и в консоль вывелись названия событий которые произошли. Или может есть какой-то другой способ?
  • Вопрос задан
  • 4874 просмотра
Подписаться 2 Простой 3 комментария
Решения вопроса 2
Krasnodar_etc
@Krasnodar_etc
fundraiseup
Тебе для дебага? В хроме же есть Event Listeners у элемента
Ответ написан
0xD34F
@0xD34F Куратор тега JavaScript
Задавать тип обрабатываемого события надо явно, так что способа легко и просто сделать то, что вы хотите, нет.

Можно подготовить список типов событий заранее и повесить общий обработчик:

const events = [ 'mousemove', 'mouseleave', 'mousedown', ... ];

$element.on(events.join(' '), function(e) { ... })

Или попробовать собрать имена типов событий, перебирая DOM-свойства элемента - имена обработчиков выглядят как "on<тип события>":

const events = [];
for (const k in element) {
  if (k.indexOf('on') === 0) {
    events.push(k.slice(2));
  }
}

$(element).on(events.join(' '), function(e) {
  console.log(e.type);
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@panterr92
есть тег onclick, который может вызывать нужную функцию в коде JS
Ответ написан
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
el.onclick= el.oncontextmenu= el.onmouseover= eRouter;

function eRouter(e) {
			if(e.type === 'click') {
				...
			} else if(e.type === 'contextmenu') {
				...
			} else if(e.type === 'mouseover') {
...
}

		}


Таким образом можно из одной функции проверять какое из событий произошло и что-то предпринимать по этому поводу.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы