Jquery Accordion:先前打开一个部分时不会触发悬停操作

时间:2011-05-04 17:08:31

标签: jquery html css hover

我注意到我的jquery手风琴菜单存在问题。

当我打开一个部分并再次关闭时,':hover'功能似乎停止了对该特定部分的工作。 ':hover'功能仍适用于我尚未点击的其他部分。

如果我全部点击它们,那么':hover'将停止为所有部分工作。

我会非常感谢你的帮助。

非常感谢

罗伯特

这是一个jsFiddle链接,可以快速展示该问题的代码示例。

http://jsfiddle.net/yUyEC/

将这些部分悬停,以查看背景位置是否已移位。单击一个部分,然后单击另一个部分并将鼠标悬停在上一部分。发生了奇怪的事情:)

在此示例中请注意div滑动定位已关闭,在主版本中没问题,但问题很好。

1 个答案:

答案 0 :(得分:1)

首先,我会使代码有效,例如

<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函数添加交互性代码/显示很可能会破坏..不是说它在这里,但它可能没有帮助;)

然后我会说在这个菜单中根本不需要定位或浮动,应该很容易使用内联块将图像和文本放入“标题”。然后他们不应该需要移动(刚才发生的古怪行为)

我不确定你要做什么,但CSS可能会为你完成大部分工作,所以jQuery只需要在子菜单中上下滑动而与之无关可以通过CSS在普通菜单中工作的悬停..但无论如何..这里有一些固定的HTML / CSS代码,它们适用于你的jQuery

JSFiddle:HERE

注意IE7正在抛出一个错误,我不知道为什么,但我认为基础已经存在,我将嵌套的div更改为span并使其成像并使用垂直对齐的图像内联块,其余部分不需要浮动或定位,因为有自然位置

如果您希望链接为白色,则必须在CSS a上指定color,但div不足以定位链接颜色。

认为现在就是这样


好的我玩了一下,我真的不明白你使用的代码,但我觉得我需要从jQuery中获取CSS,这样你的悬停状态就会激活

我做了一个更新的例子,有人很可能会优化,这就是我所想的一切;悬停状态,移动背景等...通过CSS,它唯一的额外做法是在“开放”手风琴标题中添加一个类,以便它保留与悬停状态相同的CSS

我不确定的最后一件事是您需要哪些链接来阻止默认行为(标题链接?) - 我只是删除并且没有使<span>文本成为链接在所有;)

我还将内部列表更改为列表;)它的工作方式相同

(顺便说一下,IE7不再使用此代码抛出异常)

新示例:Here