我的脚本在 FF、Opera 和 IE 中几乎可以完美运行。Chrome 和 Safari 的行为略有不同。
悬停似乎工作正常。但是当我将鼠标悬停在“选定的”li 上时,它会附加一个额外的 div。这个额外的 div 与现有 div 重叠,并且不会提供平滑的悬停效果。Chrome 和 Safari 的行为与这个额外的 div 有点不同。当我在 Chrome 和 Safari 中将鼠标悬停在选定的 li 上时,它们会从选定的 li 中删除 div 并将其添加到第一个之前。我知道这个额外的 div 在 jQuery 脚本中来自哪里,但我无法解决这个问题。
HTML:
<div class="navigation">
<ul class="nav">
<li class="first"><a href="#">List 1</a></li>
<li class=""><a href="#">List 2</a></li>
<li class=""><a href="#">List 3</a></li>
<li class="last selected"><a href="#">List 4</a></li>
</ul>
</p>
CSS:
ul.nav li div.menu-hover {
width:10px; height:10px;
background-color:black; position:absolute; left:40px; display:none;
}
jQuery:
$("ul.nav > li").hover(
function() {
$(this).prepend("<div class='menu-hover'></div>");
$("ul.nav > li div.menu-hover").fadeIn("slow");
}, function() {
$(this).find("div:last").remove();
});
$("ul.nav > li.selected").prepend("<div class='menu-hover'></div>");
$("ul.nav > li.selected > div.menu-hover").fadeIn("slow");