我有以下脚本来处理子导航菜单的上下滑动:
$j('body').ready(function() {
$j('.box').hover(function() {
$j(this).find('.sub-menu').slideDown(500);
},
function() {
$j(this).find('.sub-menu').slideUp(500);
});
});
向下滑动工作正常,但向上滑动根本不起作用。相反,子菜单在离开 .box div 时突然消失了。所以我在包含 .box 的 div 中添加了 4px 的内边距,左右各 4px(这是我可以节省的!)。现在当鼠标缓慢地向左或向右离开div时,我确实得到了slideUp效果,但是以正常速度这样做时,仍然没有向上滑动。您可以通过访问此页面并将鼠标悬停在第二个导航项(“新闻”)上来了解我的意思。
padding 似乎有助于检测鼠标指针离开 div,但 slideUp 功能仍然无法正常工作,肯定有更好的解决方案吗?导航列表中“新闻”项的 HTML 是:
<li id="menu-item-144" class="menu-item menu-item-type-post_type menu-item-object-page">
<div class="box">
<div class="top_nav"></div>
<div class="clear">
<div class="bottom_nav"><div class="left_nav"></div><div class="center_nav"><a href="http://soteriabrighton.co.uk/news/">news</a></div><div class="right_nav"></div></a></div></div>
<ul class="sub-menu">
<li id="menu-item-459" class="menu-item menu-item-type-post_type menu-item-object-page">
<div class="box">
<div class="top_nav"></div>
<div class="clear">
<div class="bottom_nav"><div class="left_nav"></div><div class="center_nav"><a href="http://soteriabrighton.co.uk/news/events/">events</a></div><div class="right_nav"></div></a></div></div>
</li>
</ul>
</li>