删除事件侦听器的问题(vanilla js)
Problem with removing event listener (vanilla js)
如何删除作为现有对象方法的事件侦听器?
我在 main.js
中有这样的代码
loadSite = new LoadSite(
'js/options.js',
'pages/options.html',
containerMain,
'options-wrapper'
);
options.addEventListener(
'click',
function () {
loadSite.loadSite();
},
false
);
而且我想在另一个模块中删除这个监听器。我试过这样写:
import { LoadSite } from './classes/LoadSite.js';
(() => {
const options = document.querySelector('.options'),
loadSite = new LoadSite(
'js/options.js',
'pages/options.html',
containerMain,
'options-wrapper'
);
options.removeEventListener('click', function () {
loadSite.loadSite;
});
})();
但是没有用,我不知道怎么做。有人可以帮助我吗?
要删除侦听器,您需要传递在添加期间注册的同一侦听器。
function listener() {
loadSite.loadSite();
}
options.addEventListener('click', listener, false);
options.removeEventListener('click', listener, false);
如何删除作为现有对象方法的事件侦听器? 我在 main.js
中有这样的代码loadSite = new LoadSite(
'js/options.js',
'pages/options.html',
containerMain,
'options-wrapper'
);
options.addEventListener(
'click',
function () {
loadSite.loadSite();
},
false
);
而且我想在另一个模块中删除这个监听器。我试过这样写:
import { LoadSite } from './classes/LoadSite.js';
(() => {
const options = document.querySelector('.options'),
loadSite = new LoadSite(
'js/options.js',
'pages/options.html',
containerMain,
'options-wrapper'
);
options.removeEventListener('click', function () {
loadSite.loadSite;
});
})();
但是没有用,我不知道怎么做。有人可以帮助我吗?
要删除侦听器,您需要传递在添加期间注册的同一侦听器。
function listener() {
loadSite.loadSite();
}
options.addEventListener('click', listener, false);
options.removeEventListener('click', listener, false);