jQuery实现鼠标移入移出改变颜色, 以及on中的hover事件不生效的原因

  • 在对运行时增加的标签绑定事件的时候必须使用on()来绑定

下面的代码是,如果li是在js中新增的,那么绑定是事件无效

 $("ul li").hover(function () {
        $(this).toggleClass("colorClassName")
    });
  • 在使用on()绑定事件的时候,不能使用事件hover

下面写的hover事件不会生效

  $("ul").on("hover","li",function () {
        $(this).toggleClass("colorClassName")
    });

on绑定事件,不能使用hover,实际上hover是jQuery对mouseover mouseout的封装.然而在原生event中,并没有hover这一事件,所以在传递参数hover时,并不会有任何的效果。


  • 结合上面写的错误示范,我们可以实现功能了,2行代码解决

实现鼠标移入移出改变颜色

 $("ul").on("mouseover mouseout","li",function () {
        $(this).toggleClass("colorClassName")
    });

解释下上面用到的事件和字符串的意义

  • ul 是父标签
  • li 是ul的后代标签
  • hover是鼠标移入移出事件
  • toggleClass是改变class属性值, 之前有就删除,没有就增加
  • colorClassName是css属性, class 选择器增加的样式,在本案例里就是设置背景色
<style>
    .colorClassName{
        background-color: #2aabd2;
    }
</style>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值