jQuery наведите курсор мыши на родительский элемент, но не на дочерние элементы

#jquery #jquery-selectors

#jquery #jquery-селекторы

Вопрос:

Есть ли способ взаимодействовать с DOM с помощью jQuery, чтобы при наведении курсора мыши на div появлялось меню, но при наведении курсора мыши на определенный дочерний элемент внутри этого родительского элемента ничего не происходило?

Код пока

 $('#player_area:not(< #player_links)').live("mouseenter", function() {
  return $('#album_tracks').slideDown(200);
}).live("mouseleave", function() {
  return $('#album_tracks').hide();
});
 

Комментарии:

1. Пожалуйста, создайте jsfiddle. чистая демонстрация. mouseenter и mouseleave должен работать так, как вы этого хотите.

2. Вот jsfiddle: jsfiddle.net/q4beS/2

3. Ммм, когда я удаляю < , кажется, что он работает ( < в любом случае, это недопустимый селектор). Это то, что вы хотите? jsfiddle.net/q4beS/4

Ответ №1:

Вот что вам нужно: http://api.jquery.com/mouseover /

mouseenter и mouseleave метод.

Проверьте демонстрационный пример 😉

Ответ №2:

Вопрос в том, связано ли это с тем, что вы не хотите, чтобы действие повторялось с событиями mouseenter для дочерних элементов. То есть событие уже инициировано родительским элементом, и вы не хотите, чтобы оно выполнялось снова, не покинув родительский элемент, или вы хотите, чтобы дочерний элемент не запускал mouseenter (если он был расположен вне родительского элемента).

Кажется, что ваш код должен работать, если вы просто удалите селектор :not .

Редактировать… Извините, я неправильно понял… Следующая скрипка должна касаться того, что вам нужно было сделать

http://jsfiddle.net/q4beS/6/

Комментарии:

1. чтобы ответить на ваш вопрос; да, я хочу, чтобы действие выполнялось только на родительском элементе напрямую, если мышь «вводится» или «наводится» на дочерний элемент внутри родительского элемента, тогда ничего не происходит, или если виден раздел album_tracks, затем скройте раздел

2. В итоге я упростил почти весь свой код. Я смог использовать другой класс div, который был создан для родительского события наведения. Я просто отделил дочерний элемент от родительского элемента и переместил все, и все это работает хорошо 🙂