Я думаю, что вы пропустите небольшую заметку здесь. События по умолчанию во время распространения получили две фазы: захват и всплывание . Вы можете прочитать больше о них здесь .
Это примерно так:
Поэтому, когда вы щелкаете по элементу внутри другого элемента по умолчанию он будет всплывать через родительский элемент, затем будет вызвано родительское событие. Чтобы избежать такого, вы должны использовать .stopPropagation()
, поэтому ваш код должен выглядеть примерно так:
document.getElementById("outerBox").addEventListener("mouseover", function () {
console.log("Mouse is over outer box");
});
document
.getElementById("innerBox")
.addEventListener("mouseover", function (event) {
event.stopPropagation();
console.log("Mouse is over inner box");
});
<div id="outerBox">OuterBox
<div id="innerBox">InnerBox
</div>
</div>