【发布时间】:2011-11-30 11:42:43
【问题描述】:
我为这个问题制作了这个测试代码:https://jsfiddle.net/5phqm/1/
据我了解,如果 jQuery 的 triggerHandler() 阻止默认浏览器行为,则不会触发和处理原生 JavaScript 事件(我的代码中的 addEventListener() 也是如此),而是通过标签的属性添加的内联事件onclick="" 无论如何都会被触发!为什么会发生?我对在浏览器中触发的事件有误解吗?
【问题讨论】:
-
对于它的价值,我一直认为这是遵循 CSS 规则的行为模式:内联代码覆盖了
head中的代码,而head中的代码又覆盖了外部代码中的代码脚本。你可以简单地removeAttr('onclick')。 -
这不是一个直接的答案,但在 jQuery 网站上,他们声明他们不会花精力解决内联事件处理程序的问题:docs.jquery.com/Won't_Fix#Inline_Event_Handlers。我很想知道你的代码为什么会这样,但我认为不会有修复它(以防你发现它是一个错误)。
标签: javascript jquery eventtrigger