我想要一种通用(跨浏览器)方式让浏览器default action
为指定事件执行对象,最好不要让任何附加的侦听器触发。
这种问题之前已经被问过,但是在已经在一个事件中的上下文中,和/或严格地谈论在让它稍后发生之前同步地推迟默认操作。
基本上,假设您有一个 DOM 元素(您不知道是哪个)变量,并且您想调用 a click
,这样如果它是 an anchor
,它将跟随它的href
,如果它是 aninput[type="submit"]
它将提交表单。
但是没有为事件触发该元素的侦听器click
(侦听器中可能很容易发生preventDefault()
s)。
对于那些需要理由来回答问题的人;如果您正在dispatchEvent()
为只有fireEvent()
.
如果默认值没有被“阻止”,这两个函数都会返回true
,但dispatchEvent()
实际上只会执行并调用默认值。
作为一个附带问题,jQuery 的trigger()
目的是做到这一点(尽管在触发侦听器之后)并且是跨浏览器,也许解决方案在那里?与 jQuery 一样好,我想知道它调用的 vanilla 方法(如果它 [这个特殊功能] 确实适用于 IE8 之类的东西)。