Как лучше всего различать события в JavaScript.
На самом деле меня интересуют два момента. Первый: есть ли что-то вроде id в событии (это было бы очень полезно для отладки в целях).И еще один момент: есть лучшие способы различить события mousedown
и mousedown
& touchstart
.
Позвольте мне рассказать вам мою историю.Я столкнулся с проблемой, что если вы добавляете два события dom к узлу с триггерами mousedown
и touchstart
, то на мобильных устройствах запускаются и mousedown
, и touchstart
.
Первое найденное мной решение былозапускать
event.preventDefault();
event.stopPropagation();
в начале каждой функции слушателя.
Но затем я обнаружил шаблон делегирования события и начал работать с аналитикой, все, что не позволяло использовать предыдущий подход,поэтому я придумываю следующее решение:
let lastEvent = null;
const specificListener = function(e) {
if (lastEvent === e) {
return; //already run the code due to another listener
}
/*
logic goes here
*/
lastEvent = e;
};
И теперь меня интересует, возможно ли сравнить события другим способом (отличается от event1 === event2, надеюсь узнать очто-то вроде event1.id === event2.id)?
Спасибо.