如何触发自定义可取消事件 [英] How to fire custom cancelable event

查看:128
本文介绍了如何触发自定义可取消事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道如何在JavaScript中触发事件,但我不知道如何使其取消.通过事件处理程序中的event.preventDefault().

document.dispatchEvent(new CustomEvent("name-of-event", {}));

我已经编写了以下代码,但是怎么可能通过event.preventDefault()以本机的方式实现呢?

 document.dispatchEvent(new CustomEvent("my-event",function keepGoing(result){
  if(result){
      // continue ...
  }
}));

// And then in event listener:
document.addEventListener('my-event',function(event,keepGoing){
keepGoing(true);
// Or keepGoing(false);
});
 

解决方案

CustomEvent构造函数具有第二个options参数,您可以使用该参数来生成事件cancelable.请参阅MDN上的文章创建和触发事件. /p>

 var event = new CustomEvent("my-event", {
  cancelable: true
})

document.addEventListener('my-event', function (event) {
   event.preventDefault()
})

console.log(
  document.dispatchEvent(event) ? 'Event was not cancelled' : 'Event was cancelled'
) 

I know how to fire an event in JavaScript, but I don't know how to make it cancelable. via event.preventDefault() in event handler.

document.dispatchEvent(new CustomEvent("name-of-event", {}));

I have written the following code, but how is it possible in a native way, via event.preventDefault()?

document.dispatchEvent(new CustomEvent("my-event",function keepGoing(result){
  if(result){
      // continue ...
  }
}));

// And then in event listener:
document.addEventListener('my-event',function(event,keepGoing){
keepGoing(true);
// Or keepGoing(false);
});

解决方案

The CustomEvent constructor takes a second options parameter, which you can use to make the event cancelable. See the article Creating and triggering events on MDN.

var event = new CustomEvent("my-event", {
  cancelable: true
})

document.addEventListener('my-event', function (event) {
   event.preventDefault()
})

console.log(
  document.dispatchEvent(event) ? 'Event was not cancelled' : 'Event was cancelled'
)

这篇关于如何触发自定义可取消事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆