2011-01-18 3 views
0

У меня есть этот пример здесь: http://jsfiddle.net/QRChv/меню родитель-ребенок парения - остановка анимации - JQuery

Im пытаясь настроить его так, что при наведении курсора мыши на элемент списка ребенка, его анимация начнется, но родитель оленья кожа вызовите его функцию .hover().

Я не знаю, можно ли это сделать, но есть ли способ остановить родителя от фактического прохождения его анимации. Таким образом, он вообще ничего не делает, когда элемент его дочернего списка зависает.

У меня есть набор настроек операторов if для каждого элемента списка, который был прост.

+0

$ (это) .parent() отвязать ('MouseEnter MouseLeave'); ive попробовал добавить это, но не повезло. http://jsfiddle.net/QRChv/5/ –

+0

благодарит @jAndy и @rcravens. последний вопрос, который я прокомментировал, был исправлен с помощью css. http://jsfiddle.net/QRChv/17/ Я вижу проблему, если кто-то должен был иметь подобную навигацию, но если бы элементы были рядом друг с другом. –

ответ

1

Я обновил свой код:

http://jsfiddle.net/QRChv/4/

Вам нужно остановить распространение события, то есть путем возврата false из обработчика.

Вы также могли бы назвать себя .stopPropagation() на event object

+0

спасибо, я заметил, что если я нарисую на первом элементе списка, а затем на второй элемент списка, первый не будет анимировать его первоначальный цвет. Мне нужно прочитать о распространении события, потому что я не уверен, что это такое –

+1

@NilsR: Да, это так. Говоря простыми словами, все события «пузырятся» в «дереве DOM». Таким образом, событие mouseover будет происходить во всех родительских узлах, если вы явно не отмените это. Это Wat '.stopPropagation' делает. – jAndy

1

насчет добавления вызова к stopPropagation. Что-то вроде этого:.

http://jsfiddle.net/rcravens/QRChv/9/

+0

спасибо, что работал по большей части. :] Но если я нависаю над первым элементом, то прямо ко второму, первый не оживляет назад. –

Смежные вопросы