在悬停一个元素时切换div,然后关闭另一个元素?

时间:2013-09-05 22:11:12

标签: javascript jquery css html5 menu

我想要实现的是显示“菜单”范围,当我将鼠标悬停在“标题”范围内时,但只有当我离开“标题”时它才会消失。

<header>
        <span id="title">
            title etc
        </span>

        <span id="menu">
            menu content etc
        </span>
</header>

我写了这个jquery代码,但是当我离开“标题”范围而不是“标题”时,“菜单”范围消失了

$('#title').hover({
    $('#menu').toggle();
});

我知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

实现这一目标的一种方法是重新调整菜单,在现实世界中,定位可以照顾它的显示方式。

<header>  
<span id="title">
            title etc
             <span id="menu">
            menu content etc
        </span>
</span>
</header> 

<强> Fiddle

这是一个更复杂的例子。

<span class="title">
            title
             <span class="menu">
                 <span class="item">menu11</span>
                <span class="item">menu12</span>
                 <span class="item">menu13</span>
        </span>
</span> <span class="title">
            title2 
             <span class="menu">
            <span class="item">menu21</span>
                <span class="item">menu22</span>
                 <span class="item">menu23</span>
        </span>
</span>

<强> Fiddle

只有css用于上述结构:

.menu {
    display:none;
    position:absolute;
    top:10px;
    left:0;
}
.title {
    position:relative;
}
.title:hover .menu{
    display:block;
}

<强> Fiddle

答案 1 :(得分:2)

怎么样:

$('#title').mouseenter(function(){
    $('#menu').show();
});

$('header').mouseleave(function(){
    $('#menu').hide();
});

这是一个jsfiddle:http://jsfiddle.net/5sL5g/