如何取消文档方法的关闭事件-addEventListener('close')

时间:2019-11-16 20:04:02

标签: javascript angular

我有下一个mdl对话框:

document.getElementById('dialog').addEventListener('close', function (event) {
         event.preventDefault()



});

所以我想取消此活动。我希望在按下后退按钮时不关闭对话框。此事件可以捕获close事件,但不能停止该事件,因为cancelable属性将设置为false。

1 个答案:

答案 0 :(得分:0)

您可以使用removeEventListener,但必须传递与使用addEventListener时传递的事件处理程序相同的事件处理程序。

const closerHandler = function (event) {
  event.preventDefault();

}

document.getElementById('dialog').addEventListener('close',closerHandler); 
...    
document.getElementById('dialog').removeEventListener('close', closerHandler);

或者您可以使用rxjs fromEvent

const source = fromEvent( document.getElementById('dialog'), 'close');
const subscribe = example.subscribe(val => console.log(val));

以后您可以使用退订方法

 subscribe.unsubscribe()