最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to fire custom cancelable event - Stack Overflow

programmeradmin7浏览0评论

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);
});

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);
});
Share Improve this question edited Mar 11, 2017 at 7:10 gyre 16.8k4 gold badges40 silver badges47 bronze badges asked Mar 11, 2017 at 6:46 behzad besharatibehzad besharati 6,9203 gold badges20 silver badges23 bronze badges 1
  • Please create a minimal reproducible example instead of posting inplete code - Here is a jQuery way: stackoverflow./questions/2229647/… – mplungjan Commented Mar 11, 2017 at 6:48
Add a ment  | 

2 Answers 2

Reset to default 14

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'
)

CustomEvent constructor accepts CustomEventInit as second argument. CustomEventInit is an extension of EventInit described here https://developer.mozilla/en-US/docs/Web/API/Event/Event

In the end.

document.dispatchEvent(new CustomEvent('my-event', {cancelable: true}));
发布评论

评论列表(0)

  1. 暂无评论