JQuery 1.8.0 升级到 1.9.1的变化之一
今天做项目转移,jquery由1.8.0升级为1.9.1,在做一个新页面时,原程序的common.js中涉及到live方法失效,网上大家的解释如下,收藏并验证通过,内容如下:
原文地址:http://stackoverflow.com/questions/14354040/jquery-1-9-live-is-not-a-function
For quick/hot fixes on a live site, do not just replace the keyword live
with on
, as the parameters are different.
.live(events,function)
should map to
.on(eventType, selector,function)
The selector is very important! If you do not need to use this for any reason, set it to null
.
Migration Example 1:
before:
$('#mainmenu a').live('click',function)
after, you move the child element (a
) to the .on()
selector:
$('#mainmenu').on('click','a',function)
Migration Example 2:
before:
$('.myButton').live('click',function)
after, you move the element (.myButton
) to the .on()
selector, and find the nearest parent element (preferably with an ID):
$('#parentElement').on('click','.myButton',function)
If you do not know what to put as the parent, body
always works:
$('body').on('click','.myButton',function)