Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 24.03.2014, 11:04
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Основное отличие 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 это по меньшей мере глупо.

Последний раз редактировалось monolithed, 24.03.2014 в 11:09.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как определить активное окно/вкладку? Chameleon Events/DOM/Window 5 19.03.2012 08:59
Как отловить обратное событие "click" ? jsuse Общие вопросы Javascript 2 18.01.2012 00:16
Как правильно подавить событие при подключении своего обработчика? Маэстро Firefox/Mozilla 2 03.09.2011 11:46
Плагин JQuery tabs как подписаться нв событие перекл.вкладок xela1980 jQuery 6 15.12.2009 18:00
как проверить поддеружет браузер определенное событие? GOll Элементы интерфейса 9 24.07.2008 14:40