最近在给新开发的项目添加埋点,以便于统计页面的点击情况。根据其他的部门同事提供的文档,需要使用到jquery的live函数来绑定事件来触发埋点。开始我也没有注意到这个问题,添加完了我想测试一下,结果firebug竟然报错了: .live is not funciton。我以为是没加载到jquery,但是通过打印$,发现已经加载到了。没有办法,看了看jquery的版本1.9.1。一查手册,在1.7的时候这个函数已经被移除了。但是可以用on这个方法来替代live。下面这个段代码是摘自jquery的论坛上的:
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)
上面展示了如何用on来替代live的方法。