由于之前的项目基本都是在JQuery 1.7版本,项目中会频繁使用live()函数来为JS动态生成的元素绑定事件。今天使用JQuery 2.X版本时,在页面中调用live()函数却不起效果,并且控制台输出了异常:
TypeError: $(...).live is not a function。
在网上爬了一圈资料后才发现原来live()函数从JQuery 1.9版本起就已经被移除了,取而代之的是优化过的on()函数。
在1.7版本中针对动态生成的元素绑定事件,我们会做如下定义
$("a.foo").live("click", fn)
而在1.9以后的版本中我们可以使用on()函数来进行相同功能的定义
$(document).on("click", "a.foo", fn)
在官方的升级引导中也有详细的描述。