请告诉我我们将如何定义“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
null
或not an object
。
答案 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);
}