原本主题用的是1.8.3版的jQuery插件,升级到1.11.1之后得换掉live方法为on方法。
.live()方法在jQuery1.9版本已经被移除。官方推荐使用.on()方法,有两个原因:
原因一
.on()方法可以绑定动态添加到页面元素的事件,之前大多数同学都习惯于用.bind()、.live()或.delegate(),其实.on()方法可以看作前三者的综合。
原因二
.on()方法绑定事件可以提升效率。不详细解释,可以自己做一个对比的测试。
其实刚开始我对live方法根本一窍不通,后面跳到on方法后才去学习这个东西。
$(selector).on(event,childSelector,data,function,map)
这里有个子父节点的问题,原本用.live()方法绑定ajax点击事件时是这样的:
$('.nav-menu a,.post-header a').live('click', function() { // ajax函数 });
而用.on()方法就必须这样:
$(document).on('click','.nav-menu a,.post-header a', function() { // ajax函数 });
其中body是一个父级或其以上的节点,也恰好是这个东西瞎搞了我半天功夫,子节点是动态的,如果不进行详细定义,那么点击事件就没法绑定。明白之后就简单了,不然心里总寻思着换jQuery的版本。
本站文章除注明转载/出处外,均为本站原创或翻译。若要转载但请务必注明出处,尊重他人劳动成果。
转载请注明出处链接 : https://www.inlojv.com/4066.html