jQuery从1.9开始,这些方法已经被删除了,用最新版JQ的同学注意啦。

jQuery1.9删除了一些在1.8中已经过时的api,想要把那些不够安全的、缺乏效率的、用处不大的,以及带有误导的特性统统去掉。如果你想升级你的jquery版本,但又使用了如下被删除的api的话,可以引入Migrate迁移插件,被删除的api可以在Migrate插件中修复。

.toggle(function, function, … )
toggle()方法可实现点击一个元素来执行指定函数。此方法被删除以减少混乱和提高潜在的模块化程度。

jQuery.browser()
jQuery.browser()通过UA信息来检测浏览器。此方法在1.3版本中已不赞成使用,并在1.9版本中被删除,jquery团队更建议通过特性检测来时您的代码兼容浏览器。

.live()
live()方法可以为未来生成的元素添加事件,此方法在1.7版本中已不赞成使用,并在1.9版本中被删除,您可以使用on()方法来代替。

.die()
die()方法可以移除live()添加的事件,此方法在1.7版本中已不赞成使用,并在1.9版本中被删除,您可以使用off()方法来代替。

.sub()

sub()方法可以可创建一个新的jQuery副本,不影响原有的jQuery对像,但用例的数量已经不足以证明它存在的价值。

其实关于live被删除的事件早就在1.7.2版本以后就有通知过了 不过在官方一直提倡使用.on代替.live的过程中 .live事件一直沿用

今天更新了 看下jQuery1.9的相关信息 发现api中完全的删除掉了.live事件

我猜肯定有人关于.on事件 并没有以前.live事件那么好用 甚至有的时候绑定不上事件

其实关于这个答案是这样的, .on事件不同于以往的.live和.bind事件使用方法:

$('selecter').live('click', function(){ // do something... });

而转到.on事件应该这样:

$(document).on('click', 'selecter', function(){ // do something... });

而.on事件可以完全代替以往的.bind, .delegate等事件

转换方法如下:

// Bind
$("#members li a").on("click",function( e ){}); 
$("#members li a").bind("click",function( e ){});// Live
$( document ).on("click","#members li a",function( e ){}); 
$("#members li a").live("click",function( e ){});// Delegate
$("#members").on("click","li a",function( e ){}); 
$("#members").delegate("li a","click",function( e ){});

相关推荐