Jquery: наведение мыши / указатель мыши с делегатом - PullRequest
1 голос
/ 23 февраля 2012

У меня есть этот код:

<!-- language: lang-js -->

$('#trajectory-sequence').delegate('li:not(.disabled)','mouseenter mouseleave', function( event ) 
{
    if( event.type == 'mouseenter') 
        $(this).find("div:gt(0)").show();
    else if(event.type=='mouseleave')
        $(this).find("div:gt(0)").hide(); 
});

, который показывает / скрывает некоторых детей.Теперь я хотел бы выполнить действие, когда мышь находится над одним из этих детей.У меня есть это:

<!-- language: lang-js -->

$('#trajectory-sequence').delegate('li:not(.disabled) div:nth-child(4)','mouseover', 
function( ) {
    alert('mouseover');
});

Но, похоже, событие наведения мыши никогда не запускается.Но когда я использую mouseenter вместо mouseover, он работает отлично, почему?

1 Ответ

3 голосов
/ 23 февраля 2012

Событие mouseenter отличается от mouseover тем, как оно обрабатывает всплытие событий.

При событии mouseover, если указатель мыши будет перемещен над внутренним элементом, обработчик сработает. Это обычно нежелательное поведение. Событие mouseenter, с другой стороны, запускает свой обработчик только тогда, когда мышь вводит элемент, с которым она связана, а не потомок. Так что mouseenter работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...