Arj*_*jun 58 javascript jquery events
调用event.stopImmediatePropagation()和return false内部事件处理程序之间有什么区别吗?
Fel*_*ing 150
是的他们是不同的.
return false与调用两者基本相同,event.stopPropagation()和event.preventDefault().
而event.stopImmediatePropagation()相同event.stopPropagation() 加防止相同元件上的其他注册事件处理程序被执行.因此,它不会阻止事件的默认操作,例如跟随单击的链接.
简而言之:
stop | prevent | prevent "same element"
bubbling | default action | event handlers
return false Yes Yes No
preventDefault No Yes No
stopPropagation Yes No No
stopImmediatePropagation Yes No Yes
Run Code Online (Sandbox Code Playgroud)
return false 也适用于"普通"JavaScript事件处理程序
event.stopPropagation()并且event.preventDefault()还在"普通"JavaScript事件处理程序(在W3C兼容的浏览器中)工作,而event.stopImmediatePropagation()jQuery是一个扩展(更新:显然它是DOM Level 3 Events规范的一部分).
注意: return false 不会阻止事件在"普通"(非jQuery)事件处理程序中冒泡(请参阅此答案)(但仍会阻止默认操作).
也许值得一读: