如何只运行一次事件监听器?

时间:2020-01-07 08:11:06

标签: javascript event-handling dom-events

我有一个按钮,单击该按钮即可运行事件监听器。但是该事件在每次点击时都在运行。我只想运行一次该事件。

因此,我添加了第二个按钮,该按钮用于删除事件侦听器。但这不起作用,该事件正在运行几次。因此,例如当我按下运行按钮5次时,它将运行事件5次。

我需要通过单击“删除”按钮来删除事件,以将事件侦听器重置为0。

运行事件功能:

setListenerOnClick() {
    this.window.addEventListener(this.testEvent, event => {
        console.log('Test ' + event);
    });

    this.window.addEventListener(this.test2Event, event => {
        console.log('Test 2 ' + event);
    });
}

删除事件功能:

removeListener() {
    this.window.removeEventListener(this.testEvent, event);
    this.window.removeEventListener(this.test2Event, event);
}

试图将功能添加到新功能并将事件替换为该功能,但这没有用。不能添加选项“一次”,因为它不适用于IE11。

我要在单击“运行”按钮时运行事件,并在单击“删除”按钮时清除/删除。

有什么想法吗?

0 个答案:

没有答案