Основное отличие mouseenter/mouseleave от mouseover/mouseout заключается в том, что на на дочерних элементах нельзя поймать событие.
Именно поэтому, если нужно делегирование, то используйте mouseover/mouseout: <script> document.addEventListener('DOMContentLoaded', function () { var div = document.getElementById('div'); div.addEventListener('mouseover', function (event) { var target = event.target; while (target != this) { if (target.tagName.toLowerCase() == 'p') { alert(target.textContent); break; } target = target.parentNode; } }); }); </script> <div id="div"> <p>text 1</p> <p>text 2</p> </div> А подписывать все дочерние элементы на события, ради mouseenter/mouseleave это по меньшей мере глупо. |
Часовой пояс GMT +3, время: 04:57. |