除了加载页面时,javascript中的事件侦听器不会触发

时间:2014-01-07 11:34:18

标签: javascript html addeventlistener

我正在尝试这个:

//this represents all of the select tags on the page
var select = document.getElementsByTagName("select");

//Listener for when the option changes
select.addEventListener("change", hi(), false);

function hi() {
  alert("hi");
}
<select>
  <option>one</option>
  <option>two</option>
</select>

但事件监听器似乎没有工作,在jsfiddle中它在页面加载时有效,但在我更改选项时却没有...

1 个答案:

答案 0 :(得分:5)

从功能名称中删除括号:

select.addEventListener("change", hi, false);

您正在调用该函数并附加其结果,而不是附加函数本身。

编辑:此外,正如Teemu指出的那样,您正在尝试附加到集合而不是单个select项目。试试var select = document.getElementsByTagName("select")[0]; - 或者更好的是,使用getElementById