Jquery淡入下拉菜单

时间:2011-09-05 23:23:43

标签: jquery css html

我正在尝试制作一个菜单,当主菜单的按钮(包含子菜单的按钮)悬停在按钮子菜单上时,它会淡入。

问题是我有mouseleave使子菜单的div淡出。如果用户将鼠标悬停在带有子菜单的主按钮上并且没有进入子菜单的div,则子菜单的div将保留在屏幕上。

<style type="text/css">
    .dropmenu{
        padding:10px 5px 5px 5px;margin-top:14px;display:none;background:#000000;position:absolute;font:normal 14px arial;color:#ffffff;z-index:3;
    }
</style>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>

<script type="text/javascript">
    $(function() {
        $('#popm').mouseover(function() {
            $('#x3').fadeIn("fast", "linear");
        });
        $('#x3').mouseleave(function() {
            $('#x3').fadeOut("fast", "linear");
        });
    });
</script>

<a class="wblinks" id="popm" href="popular.asp">Popular&#x25BC;</a>
<div id="x3" class="dropmenu" style="margin-left:124px;">
    <a class="more" href="popular.asp?t=td">Popular Today</a><br />
    <a class="more" href="popular.asp?t=wk">Popular Week</a><br />
    <a class="more" href="popular.asp?t=mn">Popular Month</a><br />
    <a class="more" href="popular.asp?t=6mn">Popular 6 Months</a><br />
    <a class="more" href="popular.asp?t=yr">Popular 1 Year</a><br />
    <a class="more" href="popular.asp">All Time</a><br />
</div>

如果没有徘徊过来,我怎么做才能使div自行消失?

2 个答案:

答案 0 :(得分:1)

您可以在鼠标移出#popm时设置计时器。如果用户将鼠标悬停在下拉菜单上,则清除计时器。 http://jsfiddle.net/jUuVz/

答案 1 :(得分:0)

将鼠标悬停在a.wblinks上会导致子菜单出现,对吗?在这种情况下,您只需要在父div中包装所有内容(a.weblinks&amp;子菜单,div.dropmenu),并将mouseleave事件绑定到该父div。

这与我回答here的问题类似。