关于jquery1.9.1与live()使用

本文讲述了在遇到项目中不同版本jQuery共存的问题时,发现jQuery 1.9.1已移除.live()方法。作者通过错误提示了解到.live()已被官方弃用,推荐使用.on()来替代。文章提供了错误处理示例和jQuery官方的解释,并给出了升级后的代码示例,以帮助读者理解如何在新版本中正确处理动态元素的事件绑定。

由于项目组做的人太多了,项目整体比较乱, jquery架包在项目中导入了3个,1.3.2,  1.5.2,   1.9.1 我的天.....

每次在修改别人代码的时候总是自动忽略引入的js和css ,所以导致今天上午纠结了一上午,才明白了,废话不说了, 正式进入话题...

开始喽。

一直在使用.live()觉得很好用,特别是在绑定事件之后再加入的元素的事件绑定上很方便(第一次live之后以后添加的元素就不需要绑定啦),甩bind()好几条街,但是由于没有仔细研究live(). 今天就在这里摔了个大跟头。

 在jsp导入的jQuery.1.9.1,但是我在js中使用的是$("#liveID").live("click",function(){alert("liveclick");});

后来使用了神气提示错误信息为:



神气如下,灰常好用:

<scriptlanguage="javascript" type="text/javascript">
//
错误代码测试
onerror=function(msg,url,line){
               var errorMsg = msg+",\nurl"+url+",\n line:"+line;
               alert(errorMsg);
}
</script>

 

 后来查了文档才知道在新版本中做了修改。

jQuery网站上这么说的:

live在jQuery1.7中就不再建议使用,在1.9中就给删除了。在jQuery官方网站上说明了原因,并声称用on方法取代live方法。jQuery官方网站声称下面三行代码是等价的

Asof jQuery 1.7, the .live() method is deprecated.Use .on() to attach event handlers. Usersof older versions of jQuery should use .delegate() in preference to .live().

Thismethod provides a means to attach delegated event handlers to the document elementof a page, which simplifies the use of event handlers when content isdynamically added to a page. See the discussion of direct versus delegatedevents in the.on() method for more information.

改进后的使用建议:

1$(selector).live(events, data, handler); // jQuery 1.3+

2$(document).delegate(selector, events, data, handler); // jQuery 1.4.3+

3$(document).on(events, selector, data, handler); // jQuery 1.7+

示例:
1 $("a.offsite").live("click", function(){alert("Goodbye!"); }); // jQuery 1.3+

2$(document).delegate("a.offsite", "click", function(){alert("Goodbye!"); }); // jQuery 1.4.3+

3$(document).on("click", "a.offsite", function(){alert("Goodbye!"); }); // jQuery 1.7+

结束喽!希望对你们有所帮助。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值