使用事件侦听器( "click" , 函数(数组))将元素推送到数组中



我已经将事件侦听器附加到一个按钮上,对于事件侦听器函数中的函数,我正在尝试传递一个我希望在每次单击按钮时更新的数组。这可能吗?如果是这样,我做错了什么,因为我不确定如何查看 array1 是否正在更新。提前谢谢。

var array1 = new Array();
buttons.addEventListener("click", update(array1));
function update(array){
array.push("*");
console.log(array);
}

你需要传递函数的引用,而不是用()来执行它

buttons.addEventListeners("click", update);

在您的情况下,您还想传递参数,因此您需要.bind()它:

buttons.addEventListeners("click", update.bind(null, array1));

第一个参数是this参数。如果要更改this的上下文。其他参数是要传递的参数

你写它的方式是立即调用函数而不是点击事件

buttons.addEventListener("click", update(array1));

您可以使用箭头函数语法,这样您的更新函数将在单击事件时正确调用

buttons.addEventListener("click", ()=>update(array1));

最新更新