Javascript 如何将函数连接到windows.onclick?
我有一些组件可以在windows.onclick中执行某些操作:Javascript 如何将函数连接到windows.onclick?,javascript,Javascript,我有一些组件可以在windows.onclick中执行某些操作: window.onclick = () => dosomething(); 问题在于,如果该组件存在多次,则会相互覆盖 那么解决办法是什么呢?我怎么能做这样的事情 window.onclick+=()=>dosomething()访问器函数上的只能为其分配一个值 虽然您可以进行变通,但最好的选择是使用addEventListener addEventListener("click", () => dosomethin
window.onclick = () => dosomething();
问题在于,如果该组件存在多次,则会相互覆盖
那么解决办法是什么呢?我怎么能做这样的事情
window.onclick+=()=>dosomething()代码>访问器函数上的只能为其分配一个值
虽然您可以进行变通,但最好的选择是使用addEventListener
addEventListener("click", () => dosomething());
addEventListener("click", () => dosomethingelse());
如果你真的想做一个变通的工作(并且不确定),那么你可以做如下事情:
window.onclick = () => dosomething();
window.onclick = (function () {
const old = window.onclick;
return (e) => {
old(e);
dosomethingelse();
};
})();
…将旧函数复制到一个新变量,然后创建一个调用这两个函数的新函数。您可能希望将单击侦听器添加到文档中,而不是直接添加到窗口中。但附加多个处理程序是通过以下方式完成的:
document.addEventListener('click', () => doSomething());
但是,尽管窗口
也是一个事件目标
,因此从技术上讲,您可以对它执行相同的操作,但我建议您在文档
上执行相同的操作。onclick
只能是一个函数。如果需要多个,则需要使用addEventListener
。虽然这似乎是个XY问题。
addEventListener("click", () => dosomething());
addEventListener("click", () => dosomethingelse());