Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.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_Events - Fatal编程技术网

如何取消侦听器中的自定义javascript事件?

如何取消侦听器中的自定义javascript事件?,javascript,events,Javascript,Events,如果通过CustomEvent创建的自定义事件被调度,那么在侦听器中取消它的方法是什么,以防止事件的主要用途 例如,用户单击一个覆盖,然后它会发出一个事件,但必须由一些代码来决定是隐藏覆盖还是保持其不变 更新这是一个问题,我知道答案,但尝试将其告知其他人。我们需要将事件配置为可取消 在任何事件侦听器内调用preventDefault以取消它 window.addEventListener('some_awesome_event', event => { event.preventD

如果通过CustomEvent创建的自定义事件被调度,那么在侦听器中取消它的方法是什么,以防止事件的主要用途

例如,用户单击一个覆盖,然后它会发出一个事件,但必须由一些代码来决定是隐藏覆盖还是保持其不变


更新这是一个问题,我知道答案,但尝试将其告知其他人。

我们需要将事件配置为可取消

在任何事件侦听器内调用preventDefault以取消它

window.addEventListener('some_awesome_event', event => {
    event.preventDefault()
})
然后可以使用dispatchEvent返回的结果检查事件是否已取消

用于创建和触发事件

文件


界面文档

你自己已经知道答案,为什么还要问问题?而且它是一个duplicate@SanderVisser-问答部分完全正确,以及。重复的部分是好的还是不好的取决于自我回答,通常是不好的。副本可以帮助人们找到已经提出的问题及其答案。请识别重复项,以便人们可以进行适当的投票。@Sanderviser-系统明确鼓励您在提问时回答问题-例如,分享您已有的知识,但以问答形式。当你问一个问题时,如果你想同时提供答案,它有一个按钮可以按下。然后它同时发布了这两个版本。@T.J.Crowder不知道,谢谢@Sander Visser我在这里寻找一个快速的答案,但没有找到任何关于vanilla JS的信息,然后,在自己的搜索之后,决定我不是一个人,并分享了这些知识。你能给我一个复制品的链接吗?我会请主持人将我的问题标记为重复
window.addEventListener('some_awesome_event', event => {
    event.preventDefault()
})
let isAllowed = window.dispatchEvent(awesomeEvent)
if(isAllowed){
    // do some default things
}
else {
    // just an example
    console.log('Oops! The event was cancelled, nothing to do...')
}