我想在多个事件侦听器中重新使用一个长函数。
有没有一种方法可以在多个事件侦听器(没有jQuery或其他库)中重用javascript函数。
我尝试了一些事情。
function one(){
console.log("not supposed to show until I press the variable containing num1")
};
num1.addEventListener('click', one());
在开始时运行该功能,而不是在单击时运行
num1.addEventListener('click', function one(){
console.log("oops")
});
num2.addEventListener('click', one());
当我按num1时运行不起作用
const one = () => {console.log("Still not working")}
num1.addEventListener('click', one());
与第一个示例相同。
我想在多个事件侦听器中重新使用一个长函数。
答案 0 :(得分:0)
您应该像这样num1.addEventListener("click", one); num2.addEventListener("click", one);
使用
使用function one(...){...}
先前声明的
答案 1 :(得分:0)
您应该提供一个事件监听器要调用的函数,但是通过执行one()
,您不是在提供函数,而是提供了该函数返回的内容。
就像提到的@Luis Barajas一样,做num1.addEventListener("click", one)
答案 2 :(得分:0)
one()
返回undefined
,您传递的是undefined
而不是回调。您可以传递函数并在其中调用one()
。
let num1 = document.querySelector('#num1');
let num2 = document.querySelector('#num2');
function one(){
console.log("Its working ");
}
num1.addEventListener('click', (e) => {
one()
});
num2.addEventListener('click', (e) => {
one()
});
<button id="num1">Num 1</button>
<button id="num2">Num 2</button>