其实.bind(), .live(), .delegate()都是通过.on()来实现的
stopPropagation()函数用于阻止当前事件在DOM树上冒泡。该函数只阻止事件向祖辈元素的传播,不会阻止该元素自身绑定的其他事件处理函数的函数。
event.stopImmediatePropagation()不仅会阻止事件向祖辈元素的传播,还会阻止该元素绑定的其他(尚未执行的)事件处理函数的执行。
|
|
总结:如下
1、”stopPropagation()函数无法阻止live事件的冒泡。”
2、”stopPropagation()函数无法阻止该元素到”受委托”的祖辈元素之间的事件冒泡。”
1、$(“#id”).on(“click”, function(event){ event.stopPropagation(); }); 这样是可以阻止#id元素向外进行事件冒泡的。
$(“#wrapper”).on(“click”, “#id”, function(event){ event.stopPropagation(); );
但是如果on()采用的是类似上述的事件委托机制来处理,那么是无法阻止#id到外部#wrapper之间的事件冒泡的,只能阻止#wrapper到document的事件冒泡。
所以说,不管是delegate、live、还是on,只要是采用事件委托机制,那么目标元素到受委托的“祖辈”元素之间的事件冒泡,stopPropagation()是无法阻止的,这种情况是存在的哦。