JSFiddle ссылка на код
Ситуация:
- У меня есть обработчики кликов как на круге, так и на поле.
- Круг находится внутри коробки.
- Когда я щелкаю по полю, он регистрирует щелчок по полю.
- Когда я нажимаю на круг, он регистрирует ОБА щелчок по окну и кругу.
event.stopPropagation()
и event.cancelBubbles=true
не работают, если только я не использую их неправильно.
Как я могу избежать регистрации щелчка по полю при нажатии на кружок?
HTML
<div class="container">
<div class="box">
<div class="circle"></div>
</div>
</div>
js
const box = document.querySelector('.box');
const circle = document.querySelector('.circle');
const handleBox = (e) => {
e.stopPropagation();
e.cancelBubble = true;
console.log('box clicked');
};
const handleCircle = (e) => {
e.stopPropagation();
e.cancelBubble = true;
console.log('circle clicked');
}
box.addEventListener('click', handleBox);
circle.addEventListener('mousedown', handleCircle);