如果调度了通过CustomEvent
创建的自定义事件,在监听器中取消该事件以防止事件的主要目的是什么?
例如 用户单击了叠加层,然后它发出一个事件,但是必须由一些代码来决定是隐藏还是保留叠加层保持不变。
更新这是一个share-knowledge问题,我知道答案,但尝试将其传达给其他人。
答案 0 :(得分:-1)
我们需要将事件配置为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 guide用于事件的创建和触发
cancellable界面文档