如果通过CustomEvent
调度创建的自定义事件,在侦听器中取消它以防止事件的主要目的的方法是什么?
例如,用户点击了一个覆盖层,然后它会发出一个事件,但必须由一些代码来决定是隐藏覆盖层还是保持不变。
更新这是一个知识共享问题,我知道答案,但尝试将其传授给其他人。
我们需要将事件配置为 cancellable
// create an event
let awesomeEvent = new CustomEvent('some_awesome_event', {
cancelable: true
})
// emit
let isAllowed = window.dispatchEvent(awesomeEvent)
preventDefault
在任何事件侦听器中调用以取消它。
window.addEventListener('some_awesome_event', event => {
event.preventDefault()
})
然后可以检查事件是否被取消,返回结果为 dispatchEvent
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...')
}
事件创建和触发的MDN 指南
防止默认文档
可取消的接口文档
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句