javascript onclick函数在加载时执行

时间:2019-05-18 08:42:20

标签: javascript arrays function

我写了一段代码。单击按钮时,应调用相应的功能。虽然逻辑适用于funcB和funcD,即单击FieldB和FieldD即可调用它们。出于某些原因,在页面加载时调用了FunctionA。有人可以在这里解释我在做什么错吗?如果没有道理,可以共享其他代码。

function funcA(array){alert("Invoked");}

function init() {
    loadData();
    document.getElementById("FieldA").onclick = funcA(array1);
    document.getElementById("FieldB").onclick = funcB;
    document.getElementById("FieldC").onclick = funcA(array2);
    document.getElementById("FieldD").onclick = funcD;
}

window.onload = init;

2 个答案:

答案 0 :(得分:4)

无论何时调用函数,它都会返回一个值。 funcA(array1)不引用函数变量,但它将是从函数funcA返回的值,在这种情况下为undefined。如果要传递一些参数,请使用包装器函数。

document.getElementById("FieldA").onclick =() => funcA(array1);

更好的方法是使用addEventListener

document.getElementById("FieldA").addEventListener('click',e => funcA(array1))

答案 1 :(得分:0)

您正在onload上执行funcA,而是可以在funcA上添加包装函数,例如:

document.getElementById("FieldA").onclick = function() {
  funcA(array1);
}