从onclick调用函数,为什么我的参数被评估为true?

时间:2016-03-18 10:17:20

标签: javascript html

我试图更改"文本框"根据选择的单选按钮显示不同的内容。这个框只是一个id为"输出"的div部分。当我运行以下javascript时,我的参数似乎被忽略了" hi"无论我按哪个按钮都插入。这是Javascript相等运算符的问题,还是我已经完成函数调用的方式?

window.onload = function() {
  document.getElementById("medium").onclick = size(1);
  document.getElementById("big").onclick = size(2);
  document.getElementById("bigger").onclick = size(3);
};

function size(param) {
  if (param === 3) {
     document.getElementById("output").innerHTML = "hi";
  }
}

1 个答案:

答案 0 :(得分:0)

这一行:

document.getElementById("medium").onclick = size(1);

将onclick属性设置为size函数的结果。不是函数指针。

所以这是公平的:

var x = size(1);
//x is null
document.getElementById("medium").onclick = x;

将您的功能包裹在另一个功能中,以便将onclick设置为功能指针而不是结果,即:

document.getElementById("medium").onclick = function() {size(1);};