Javascript 如何确定两个HTML事件具有相同的来源(然后确定“事件已被处理”)

Javascript 如何确定两个HTML事件具有相同的来源(然后确定“事件已被处理”),javascript,html,dom-events,Javascript,Html,Dom Events,如何确定两个HTML事件具有相同的来源?我需要的是只处理一次点击事件(没有stopPropogation,因为点击的stopPropogation“不仅仅是下拉菜单、模态等”) 通过originalEvent进行比较(使用jQuery)if(event.originalEvent!=processedEvent.originalEvent)效果很好,但我想在vanilla js中也这样做 我们有方便的纯js方法来做同样的事情吗 var processedEvent=null; $(“#我的按钮

如何确定两个HTML事件具有相同的来源?我需要的是只处理一次点击事件(没有stopPropogation,因为点击的stopPropogation“不仅仅是下拉菜单、模态等”)

通过originalEvent进行比较(使用jQuery)
if(event.originalEvent!=processedEvent.originalEvent)
效果很好,但我想在vanilla js中也这样做

我们有方便的纯js方法来做同样的事情吗

var processedEvent=null;
$(“#我的按钮”)。单击(
功能(事件){
log(“这应该处理一次”)
processedEvent=事件;
}
)
$(“#myPanel”)。单击(
功能(事件){
if(event.originalEvent==processedEvent.originalEvent)
log(“很好,我们将参加ingore事件”)
其他的
console.log(“第二次处理错误事件”)
processedEvent=null;
}
)

单击我jQuery

PreventDefault是一种非常标准的方法。在最内部的处理程序中调用
event.preventDefault()
,那么外部处理程序应该检查jquery的
if(!event.isDefaultPrevented()){
,或者jquery的
if(!event.defaultPrevented){


您可以将自定义属性作为标志添加到事件对象,如
event.\u customWasHandled=true
,然后在以后的处理程序中检查这些属性。

我是盲的。在普通javascript中,与jQuery相反的事件是相同的

var processedEvent=null;
document.addEventListener('click',函数(事件){
如果(!event.target.matches('#myButton2'))返回;
log(“这应该处理一次”)
processedEvent=事件;
},假);
document.addEventListener('click',函数(事件){
如果(事件==processedEvent)
log(“很好,我们将参加ingore事件”)
其他的
console.log(“第二次处理错误事件”)
processedEvent=null;
},false);

点击我香草

据我所知,
originalEvent
是一个jQuery的东西,所以你应该可以使用它。@AndreNuechter谢谢你!…chmm…依赖jQuery也不是我想要的…我将在没有jQuery的情况下重写它…Psst:
jQueryEvent.isDefaultPrevented()
只映射到,即这里不需要jQuery。谢谢,我用了一个更普通的解释对它进行了更新。我一直使用jQuery来提高浏览器兼容性,因此我更习惯于它的语法。仅供参考,
event.defaultPrevented
在IE9下都受支持,因此这里没有兼容性问题。