jQuery中live()方法到on()方法的转变写法

jQuery中live()方法到on()方法的转变写法

一、live()方法

live(type, [data], fn)
    给所有匹配的元素附加一个事件处理函数,即使这个元素是以后再添加进来的也有效。

原理:

        live() 方法能对一个还没有添加进DOM的元素有效,是由于使用了事件委托:绑定在祖先元素上的事件处理函数可以对在后代上触发的事件作出回应。传递给 live() 的事件处理函数不会绑定在元素上,而是把他作为一个特殊的事件处理函数,绑定在 DOM 树的根节点上。

例:

<script type="text/javascript" src="js/jquery-1.8.3.js" ></script>

<script>    
    $(function(){
        /*live()方法,在jQuery1.9中被移除*/
        $("div").live("click",function(){
            $(this).hide();
        });
    });
</script>

注:jQuery1.7中已不推荐使用live()方法,在jQuery1.9中移除了该方法,jQuery1.9+用on()方法替代。

二、on()方法

on(events,[selector],[data],fn)
    在选择元素上绑定一个或多个事件的事件处理函数。

参数说明:
        events:一个或多个用空格分隔的事件类型和可选的命名空间,如”click”或”keydown.myPlugin” 。
        selector:一个选择器字符串用于过滤器的触发事件的选择器元素的后代。如果选择的是null或省略,当它到达选定的元素,事件总是触发。
        data:当一个事件被触发时要传递event.data给事件处理函数。
        fn:该事件被触发时执行的函数。 false 值也可以做一个函数的简写,返回false。

jQuery1.9官方文档中的一些描述:

【Changes of Note in jQuery 1.9】
    The .live() method has been deprecated since jQuery 1.7 and has been 
instead. To exactly match $("a.foo").live("click", fn), for example, you 
can write $(document).on("click", "a.foo", fn). For more information, see 
the .on() documentation. In the meantime, the jQuery Migrate plugin can be
 used to restore the .live() functionality.

例:

<script type="text/javascript" src="js/jquery-1.12.4.js" ></script>

<script>    
    $(function(){
        $(document).on("click","a",function(){
            $(this).hide();
        });
    });
</script>

简单说明:

这里写图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值