我写了一段代码。单击按钮时,应调用相应的功能。虽然逻辑适用于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;
答案 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);
}