jquery live()调用不存在的解决方法

在新版的jquery中,live()方法已经被删除了,所以我们在调用的时候会提示该函数不存在,js报错。 

解决方法是使用on()函数替换, 

原来的写法是: 
 
如果直接替换为on()方法,那么新生成的元素再次点击事件的时候不会有任何效果,新的语法是: 
 

这里涉及到一个问题,$("body")这里为什么是body,其实我们可以选择其他的距离#company_logo更近的节点,这样会有更好的性能,其实on()是在body中找#company_logo节点,所以我们吧body换成#company_logo的上级节点会取得更好的性能

注意:新版本中live()无效

1、可以用live代替,但是要注意jquery的版本,根据官方文档,从1.7开始就不推荐live和delegate了,1.9里就去掉live了。 

2、推荐用on代替(注:1.7及以上的版本才支持)。用法:on(events,[selector],[data],fn)

所以,你要看看你的jquery版本
【----------------------------】

live在jQuery1.7中就不再建议使用,在1.9中就给删除了。
  在jQuery官方网站上说明了原因,并声称用on方法取代live方法。
  jQuery官方网站声称下面三行代码是等价的
  $("a.offsite").live("click", function(){ alert("Goodbye!"); }); // jQuery 1.3+
  $(document).delegate("a.offsite", "click", function(){ alert("Goodbye!"); }); // jQuery 1.4.3+
  $(document).on("click", "a.offsite", function(){ alert("Goodbye!"); }); // jQuery 1.7+

【----------------------------】

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值