Jquery Accordion: действие при наведении курсора не запускается, если ранее был открыт раздел - PullRequest
1 голос
/ 04 мая 2011

Я заметил проблему с моим аккордеонным меню jquery.

Когда я открываю раздел и снова закрываю его, функциональность ': hover' перестает работать для этого конкретного раздела.Функциональность «: hover» по-прежнему работает в других разделах, на которых я еще не щелкнул.

Если я щелкну их все, тогда «: hover» перестанет работать для всех разделов.

Iбыл бы невероятно благодарен за некоторую помощь.

Большое спасибо

Роберт

Вот ссылка jsFiddle на быстрый пример кода, демонстрирующего проблему.

http://jsfiddle.net/yUyEC/

наведите на участки, чтобы увидеть, что фоновые позиции смещены.Щелкните один раздел, затем щелкните другой и наведите курсор на предыдущий раздел.Что-то странное происходит :)

В этом примере, пожалуйста, обратите внимание, что позиционирование div-слайдов отключено. В основной версии это нормально, хотя проблема хорошо демонстрируется.

1 Ответ

1 голос
/ 06 мая 2011

Во-первых, я хотел бы сделать код действительным, например,

<div class="sidebar_game_header">
  <a href="http://www.apple.com/">
   <img src="http://robertmegone.com/jsfiddle/images/icn_1.png" alt="Game 4 Icon"/>
   <div class="sidebar_game_header_text">Game 4</div>
  </a>
</div>

Вы не можете вложить блочный уровень div во встроенный элемент a, так как в этом случае браузеры будут пытатьсявосстановление после ошибок, чтобы восстановить DOM и отобразить элементы так, как вы хотите, это обычно нормально, но как только вы добавите интерактивность с помощью функций JS, код / ​​отображение очень вероятно сломаются ... не говоря уже о том, что это здесь, но, вероятно, это не помогает;)1006 *

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

Я не совсем уверен, что вы пытаетесь сделать, но CSS мог бы выполнять большую часть работы длявы так, что jQuery просто должен скользить вверх и вниз по дочерним меню и не иметь ничего общего с наведением курсора, который будет работать через CSS, как в простом меню ... но в любом случае ... вот некоторый фиксированный код HTML / CSS, который сортируетработ с вашим jQuery

JSFiddle: ЗДЕСЬ

примечание IE7 выдает ошибку, я не знаю почему, но я думаю, что основы есть, я изменилвложил div в span и сделал его и изображение вертикально выровненными, используя inline-block, остальное не нужно плавать или позиционировать, поскольку есть естественные позиции

, если вы хотите, чтобы ссылки начтобы быть белым, вы должны также указать a в CSS color на div недостаточно для целевого цвета ссылки ..

думаю, что пока все


Хорошо, япоиграл немного больше, я не оченьпонимаю код, который вы использовали, но я просто чувствовал, что мне нужно вытащить CSS из jQuery, чтобы ваши состояния при наведении мыши активировали

Я сделал обновленный пример, который кто-то, вероятно, мог бы оптимизировать, это делает все, что ясчитать;состояния наведения, перемещение фона и т. д. с помощью CSS, и единственное, что он делает, - это добавляет класс в «открытый» заголовок гармошки, чтобы он сохранял тот же CSS, что и состояние наведения

Последнее, что я хочуя не уверен в том, какие из этих ссылок вам понадобятся для предотвращения поведения по умолчанию (ссылки на заголовки?) - я просто выделил и не сделал текст <span> ссылкой вообще;)

Я также изменил внутренний список на список;) он работает так же

(кстати, IE7 больше не выдает исключение с этим кодом)

Новый пример: Здесь

...