0

我有一个像这样工作的 jquery 代码......当你将鼠标悬停在一个块上时,一个新的 div 向上滑动并且一个红色块 div 淡出,然后当你离开悬停区域时,div 然后向下滑动,红色块 div淡入。一切正常,这里是 jsFiddle:

http://jsfiddle.net/Gsghr/119/

唯一的问题是当新的 div 向上滑动显示“第一个项目需要向上切换”时,如果您的鼠标悬停在该 div 上,该 div 应该保持在其位置。相反,一旦您的鼠标离开“项目 1”灰色块 div 的 div 区域,另一个 div(表示“第一个项目需要向上切换”)将消失。

我尝试像这样通过 CSS 更改 div 的悬停区域,但它不起作用......

#coltab li:hover + #coltab ul li, #coltab ul li:hover {
display: block;
}

也许我做错了。但同样,当您将鼠标悬停在“第一项需要向上切换”的 div 上时,它应该可以工作。那个 div 应该留在它的位置而不是向下滑动。同样,这里是 jsfiddle,http://jsfiddle.net/Gsghr/119/,任何帮助将不胜感激。:)

此外,如果您连续多次将鼠标悬停在 div 上,则会出现跳跃,并且悬停的整个功能甚至可能会搞砸,如果有人可以解决这个问题或有一个很棒的解释的话。

4

2 回答 2

1

更改要保持的 div 的 z 顺序,使其高于红色 div。如果这在视觉上不理想,请尝试使用具有更高 z 顺序的不可见 div,该 div 与您想要保持的 div 的相同大小相匹配。

跳跃只是来自调用悬停的次数。我不知道这个问题的确切答案,但我想你可以使用“取消委托”来防止事件堆积。

于 2013-08-04T18:33:41.050 回答
0

我也是最近的 Jquery 爱好者,但我建议使用 mouseenter 和 mouseleave 方法。mouseleave 方法不会让事件下降到子级别,并希望可以解决问题。

在此处查看示例演示:http: //api.jquery.com/mouseover/

锝,阿米特

于 2013-08-04T18:41:04.783 回答