Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
600 views
in Technique[技术] by (71.8m points)

html - event listener in javascript not firing except for when the page is loaded

I am trying this:

//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>
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Remove the brackets from the function name:

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

You're calling the function and attaching its result, instead of attaching the function itself.

Edit: Also, as Teemu points out, you're trying to attach to a collection instead of an individual select item. Try var select = document.getElementsByTagName("select")[0]; - or better still, use getElementById.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...