jQuery实战_下拉菜单的实现

mouseover事件和mouseenter 事件的区别
mouseover事件会触发多次,每遇到一个子元素就会触发一次。
mouseenter 事件只会触发一次。鼠标经过的时候只会触发一次

mouseenter 和 mouseleave 一起使用
mouseover 和 mouseout 一起使用

实例下拉菜单的实现:
方法一:(常规)
结构:

<div class="box">
    <ul>
        <li><a href="#">一级菜单1</a>
            <ul class="erji">
                <li><a href="#">二级菜单1</a></li>
                <li><a href="#">二级菜单2</a></li>
                <li><a href="#">二级菜单3</a></li>
            </ul>
        </li>
        <li><a href="#">一级菜单1</a>
            <ul class="erji">
                <li><a href="#">二级菜单1</a></li>
                <li><a href="#">二级菜单2</a></li>
                <li><a href="#">二级菜单3</a></li>
            </ul>
        </li>
        <li><a href="#">一级菜单1</a>
            <ul class="erji">
                <li><a href="#">二级菜单1</a></li>
                <li><a href="#">二级菜单2</a></li>
                <li><a href="#">二级菜单3</a></li>
            </ul>
        </li>
    </ul>
</div>

JS:

$(document).ready(function(){
    $('.box li').mouseenter(function(){
        $(this).children('ul').show();
});
   $(".box li").mouseleave(function(){
     $(this).children('ul').hide();
});
})

效果:
这里写图片描述
注意:
绑定事件为什么不是给 li的 a 标签绑定?
答:因为a与下拉菜单是ul 是兄弟关系,mouseenter事件加到a元素上,当离开a的时候,ul会隐藏,只有将触发事件加到父元素,滑到ul上不会隐藏,因为mouseenter事件在子元素里同样有效果。

方法二:
  jquery 的hover()方法有两个函数,第一个是移上去的时候触发的事件,第二个函数是移开是触发的函数,刚好可以实现下拉菜单。

$('.box li').hover(function(){
     $(this).children('ul').show();
  },function(){
    $(this).children('ul').hide();
});


方法三:

$('.box li').hover(function(){
    $(this).children('ul').slideToggle();
});
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值