Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以对文档事件使用冒泡方法_Javascript_Dom Events_Event Bubbling - Fatal编程技术网

Javascript 是否可以对文档事件使用冒泡方法

Javascript 是否可以对文档事件使用冒泡方法,javascript,dom-events,event-bubbling,Javascript,Dom Events,Event Bubbling,我知道,如果你在div中创建div,让他们调用一个函数onclick event,它会调用最后一个,然后是第一个,你可以通过取消冒泡方法等轻松地控制它 我添加到文档中的事件不会发生这种情况。例如,我打开了一个对话框和一个覆盖图,我希望通过按“Escape”来关闭它们,但它总是先关闭对话框,然后再关闭覆盖图,这有点奇怪。我想关闭覆盖并停止,但现在对我来说似乎不真实。 你有什么建议吗 尝试使用捕获或停止冒泡之类的方法,但结果总是一样的 函数closingChat(e){ 如果(event.key=

我知道,如果你在div中创建div,让他们调用一个函数onclick event,它会调用最后一个,然后是第一个,你可以通过取消冒泡方法等轻松地控制它

我添加到文档中的事件不会发生这种情况。例如,我打开了一个对话框和一个覆盖图,我希望通过按“Escape”来关闭它们,但它总是先关闭对话框,然后再关闭覆盖图,这有点奇怪。我想关闭覆盖并停止,但现在对我来说似乎不真实。 你有什么建议吗

尝试使用捕获或停止冒泡之类的方法,但结果总是一样的


函数closingChat(e){
如果(event.key==='Escape')
console.log('im关闭聊天室')
}
函数closingOverlay(e){
如果(event.key==='Escape')
console.log('im closing overlay')
}
函数closingChatClick(){
console.log('我正在用click'关闭聊天室)
}
函数ClosingOverlyClick(){
console.log('单击im关闭覆盖')
}
document.addEventListener('keydown',closingChat)
document.addEventListener('keydown',closingOverlay)
嘿


代码按照您提到的顺序执行,这与
事件冒泡无关

document.addEventListener('keydown',closingChat)
document.addEventListener('keydown',closingOverlay)
keydown
事件附加到
文档
,当按键时,它将首先执行
closingChat
功能,然后执行
closingOverlay
功能

如果只想调用
closingOverlay
删除此
文档。addEventListener('keydown',closingChat)

功能关闭聊天室(e){
如果(event.key==='Escape')
console.log('im关闭聊天室')
}
函数closingOverlay(e){
如果(event.key==='Escape')
console.log('im closing overlay')
}
函数closingChatClick(){
console.log('我正在用click'关闭聊天室)
}
函数ClosingOverlyClick(){
console.log('单击im关闭覆盖')
}
文件。添加的文件列表器(“键控”,关闭覆盖)


示例非常糟糕,但我有一个react项目,我需要两个事件,如果每次按下一个事件时我都要删除它们,那么我必须再次添加它们,这是一个可怕的决定