请告诉我我们将如何定义“addEventListener”

时间:2013-09-05 06:23:58

标签: javascript html

请告诉我我们将如何定义“addEventListener”

<script type="text/javascript">
  function doSomething() {
    alert('Image clicked');
  }

var myImage = document.getElementById('my_image_id');
myImage.addEventListener('click', doSomething, false);

</script>

HTML ------------------------------------

<body>
  <img src="xxx.png" width="100px" height="100px" id="="my_image_id"/>
</body>

我收到错误myImage nullnot an object

4 个答案:

答案 0 :(得分:2)

您应该在标记之后放置代码,或者在文档准备就绪时用函数包装代码并执行函数。

你得到错误的原因是,当document.getElementById('my_image_id');调用时,没有给定id的元素那个时间。我希望你有这个想法。

答案 1 :(得分:2)

将其放在window.onload内以等待DOM完全加载,然后再附加事件侦听器。另请注意,addEventListener不适用于所有浏览器。要使其适用于所有浏览器,请尝试:

window.onload = function()
{
  var myImage = document.getElementById('my_image_id');
  if (myImage.addEventListener){
    myImage.addEventListener('click', doSomething, false);
  } else if (myImage.attachEvent){
       myImage.attachEvent('onclick', doSomething);
  }
}

答案 2 :(得分:1)

<body>关闭之前添加它,因为DOM在执行相关脚本时没有“ my_image_id ”,例如:

<body>
<img src="xxx.png" width="100px" height="100px" id="my_image_id"/>
<script type="text/javascript">
function doSomething() {
    alert('Image clicked');
 }

 var myImage = document.getElementById('my_image_id');

 myImage.addEventListener('click', doSomething, false);
</script>
</body>

<强>加

if (myImage.addEventListener) {
  myImage.addEventListener('click', doSomething, false);
}
else if(myImage.attachEvent) { // FOR IE
  myImage.attachEvent('onclick', doSomething);
}
else { 
    //
}

答案 3 :(得分:1)

window.onload = function()
{
myImage.addEventListener('click', doSomething, false);
}