Это кажется очень простой проблемой, но я не могу найти правильный способ ее решения. Как бы я мог иметь один мастер-класс, который отключает все события щелчка для этого элемента. Допустим, я ...
1 ответ
Одна из больших проблем заключается в том, что jQuery присоединяется и прослушивает только события всплытия . Если вы прикрепите прослушиватель к документу, он будет запускаться только после срабатывания всех промежуточных слушателей (между выбранным элементом и документом).
Вместо этого я бы использовал ванильный JS, чтобы вы могли прикрепить слушателя на этапе захвата до того, как событие перейдет в цель. Тогда stopPropagation
в первую очередь предотвратит достижение цели событием.
document.addEventListener(
'click',
(e) => {
if (e.target.closest('.btn-disabled')) {
e.stopPropagation();
}
},
true // attach in capturing phase
);
Если вы сделаете это, вы можете добавить слушателей по своему усмотрению к любым кнопкам (или даже к документу) с помощью jQuery - и к любым нажатым кнопкам, которые имеют класс btn-disabled
(или элемент-предок с btn-disabled
) не будут активированы обработчики кликов, независимо от того, прикреплен ли слушатель к кнопке или к родительскому элементу.
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.