我有这个用jQuery制作的下拉菜单(第一个回答已编辑但仍无法正常工作 :()
var currentDrop = null;
var dropTimer;
$(document).ready(function() {
$("ul#menu > li").mouseenter(function(){
if(currentDrop) hideDrops();
currentDrop = $(this).children("ul");
currentDrop.show();
}).mouseleave(function() {
dropTimer = setTimeout("hideDrops()",500);
});
$("ul#menu li ul li").mouseenter(function() {
clearTimeout(dropTimer);
}).mouseleave(function() {
dropTimer = setTimeout("hideDrops()",500);
});
});
function hideDrops(){
if(currentDrop) {
currentDrop.hide();
currentDrop = null;
}
}
它包含的列表是使用wordpress-snippet生成的(不是我希望的问题!):
<ul id="menu">
<?php wp_list_pages("title_li=&depth=2&exclude=2");?>
</ul>
我无法理解的是,当我将鼠标悬停时,为什么sub-ul会隐藏,因为currentDrop设置为null,因此不会“激活”并且不应该使用hide-function。怎么办?
可以在此临时站点上看到错误: gadefodbold.nicolund.dk
答案 0 :(得分:3)
而不是悬停,你应该使用mouseenter和mouseleave
我之前遇到过同样的问题并使用mouseenter / mouseleave修复它。