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

use*_*469 4 html javascript 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");
}
Run Code Online (Sandbox Code Playgroud)
<select>
  <option>one</option>
  <option>two</option>
</select>
Run Code Online (Sandbox Code Playgroud)

但事件监听器似乎没有工作,在jsfiddle它可以在页面加载时工作,但不是在我更改选项时...

joh*_*rdy 5

从函数名称中删除括号:

select.addEventListener("change", hi, false);
Run Code Online (Sandbox Code Playgroud)

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

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