(1) $('ul').live('click',function(ev){
console.log(event)
event.stopPropagation()
ev.stopPropagation()
})
$('.fa').live('click',function(ev){
console.log('ass')
})
(2) $('ul').on('click',function(ev){
console.log(event)
event.stopPropagation()
console.log(ev.isPropagationStopped())//false
})
$('.fa').on('click',function(ev){
console.log('ass')
})
由于我写代码时候的大意把参数里的ev写成event了导致没有阻止事件的冒泡,可是测试中我发现如果我把live方法换成on方法后再用event.stopPropagation()来阻止事件竟然成功了。但是ev.isPropagationStopped()返回来的是false,问一下懂得大神们在事件处理函数中直接用event对象和用参数里的event对象(ev)有什么区别。。
1.live()是将事件委托到document上,无法阻止事件冒泡,
event.stopPropagation()
无效(因为执行live()的时候已经在document上冒泡了),所以被Jquery1.7弃用2.
event为window.event,是全局属性。ev是触发click后回调函数的事件对象。早期由于考虑到旧版本ie只有window.event,firefox只支持事件通过参数传入,会做兼容处理
jquery的on()已经做了兼容处理,所以不需要window.event,尽量用作为参数的事件对象。