【发布时间】:2012-09-02 07:32:03
【问题描述】:
我试过这个js代码:
<script type="text/javascript">
$(document).ready( function() {
var timer;
$('.top-menu-first-ul li').hover(function(){
if(timer) {
clearTimeout(timer);
timer = null
}
timer = setTimeout(function() {
$(this).find('ul').slideToggle(100);
}, 500)
},
// mouse out
});
});
</script>
使用这个 html:
<ul class="top-menu-first-ul">
<li>
<a href="http://google.com">Google</a>
<ul class="top-menu-second-ul">
<li><a href="http://translate.google.com">Google Translate</a></li>
<li><a href="http://images.google.com">Google Images</a></li>
<li><a href="http://gmail.google.com">Gmail</a></li>
<li><a href="http://plus.google.com">Google Plus</a></li>
</ul>
</li>
<li>
<a href="http://facebook.com">Facebook</a>
</li>
<li>
<a href="http://twitter.com">Twitter</a>
</li>
</ul>
但它不起作用。
我想在鼠标悬停时显示子菜单,例如谷歌链接和其他将在 300 毫秒后出现。
所以,当用户快速将鼠标悬停在子菜单上并且不停留在悬停链接上至少 300 毫秒时,我需要阻止加载子菜单。
然后我需要在他离开链接时停止执行代码(或向上滑动)。因为如果他反复来回反复几次,他就会停止悬停,并且代码仍在执行自己多少次他将鼠标悬停在链接上。我需要以某种方式防止这种情况发生。
编辑:如果可能的话,我需要在没有像 hoverIntent 等插件的情况下解决这个问题,只需要普通的 javascript 和 jQuery
【问题讨论】:
标签: javascript jquery