我有这个清单:
<ol id="followUs">
<li>Follow us</li>
<li class="blog"><a href="#"></a></li>
<li class="linkedIn"><a href="#"></a></li>
<li class="twitter"><a href="#"></a></li>
<li class="facebook"><a href="#"></a></li>
<li class="smartPhone"><a href="#"></a></li>
<li id="shareMore">More
<ul id="socialMore" style="display: none;">
<li id="youtube"><a href="#">Youtube</a></li>
<li id="flickr"><a href="#">FlickR</a></li>
<li id="slideshare"><a href="#">SlideShare</a></li>
<li id="newsletter"><a href="#">Newsletter</a></li>
</ul>
</li>
</ol>
以及以下 jQuery:
<script>
jQuery(document).ready(function(){
jQuery("li#shareMore").mouseenter(function() {
jQuery('ul#socialMore').css("display","block");
jQuery('span.popin_header_button').css("display","none");
});
jQuery("li#shareMore").mouseleave(function() {
setTimeout( function(){
jQuery('ul#socialMore').css("display","none");
jQuery('span.popin_header_button').css("display","block");
},1000);
});
})
</script>
第二个列表#socialMore 在页面加载时隐藏,我想在鼠标悬停时显示它,当我将鼠标悬停在#socialMore 列表周围时,它会保持在那里。问题是,当我仍然悬停在#socialMore 列表时,列表会出现和消失(除非第二个列表与第一个重叠,这是我不想要的)。
其次,我希望周围的员工位于列表下方,这不会发生,因此我需要隐藏这些。
对于 CSS,第一个列表 #followUs 是水平的,第二个列表 #shareMore 是垂直的。
任何人都可以在这里提出解决方案。不明白出了什么问题。
感谢路过。
10 月 15 日编辑
我将jQuery更改为:
jQuery("li#shareMore").hover(function() {
jQuery('li#shareMore>ul').show();
},function(){
setTimeout( function(){
jQuery('li#shareMore>ul').hide();
},2000);
}
);
它有效,但不稳定。有时,它工作得很好,有时,即使我还在第一个徘徊,ul 也会消失<li id="shareMore">More
编辑二:10 月 15 日
进一步推动它,我发现它并不是真的不稳定。逻辑是,在页面刷新时,如果我悬停li#shareMore
而不转到>ul
列表,它会按预期工作。当我第一次将鼠标悬停在>ul
列表上时,它也可以按预期工作。但是,一旦我从>ul
列表中悬停,从以下时间开始,>ul
列表就会在 setTimeOut 时间内消失,在这种情况下为 2 秒。
但是,如果我将 setTimeOut 限制设置为 0,一切都会按预期进行。这是迄今为止的观察,除非我遗漏了什么。陌生的世界 !
感谢任何提示>奇怪的情况。
编辑
似乎终于解决了,使用 cleartimeout: jquery hover and setTimeout / clearTimeOut