Javascript 请告诉我我们将如何以及在何处定义;addEventListener";
请告诉我如何以及在何处定义“addEventListener”Javascript 请告诉我我们将如何以及在何处定义;addEventListener";,javascript,html,Javascript,Html,请告诉我如何以及在何处定义“addEventListener” 函数doSomething(){ 警报(“单击图像”); } var myImage=document.getElementById('my_image_id'); myImage.addEventListener('click',doSomething,false); HTML------------------------------------ <body> <img src="xxx.png" wi
函数doSomething(){
警报(“单击图像”);
}
var myImage=document.getElementById('my_image_id');
myImage.addEventListener('click',doSomething,false);
HTML------------------------------------
<body>
<img src="xxx.png" width="100px" height="100px" id="="my_image_id"/>
</body>
我收到一个错误
myImage
为null
或不是对象
您应该将代码放在标记后,或者用函数包装代码,并在文档准备好后执行函数
出现错误的原因是,当document.getElementById('my_image_id');调用时,此时没有具有给定id的元素。我希望您能理解。您应该将代码放在标记之后,或者用函数包装代码,并在文档准备好后执行函数 出现错误的原因是,当document.getElementById('my_image_id');调用时,此时没有具有给定id的元素。我希望你能想到这个主意。在
关闭之前添加它,因为在执行相关脚本时,DOM不必“我的图像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>
在
关闭之前添加它,因为在执行相关脚本时DOM不必“my\u image\u 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>
将其放入
窗口中。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);
}
}
将其放入
窗口中。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);
}
}
id=“=”我的图像\u id”这是一个输入错误吗?语法错误
id=“=”
。还要确保在标记后添加脚本。id=“=”我的图像\u id”可能重复吗?这是一个输入错误吗?语法错误id=“=”
。还要确保在标记之后添加脚本。可能是ok的副本。我得到了它,希望我可以添加多个addEventListener和RemoveEventListener。你能给我举个例子吗?@Sujesh:只需多次调用addEventListener
。@FelixKling,就像那样。谢谢。好的,明白了,希望我能添加多个addEventListener和RemoveEventListener。你能给我举个例子吗?@Sujesh:只要多次调用addEventListener
。@FelixKling,就这样。谢谢。您好,我试过您的代码,在moz和chrome中运行良好。但是ie给出错误“object不支持此属性或方法”@Sujesh请查看添加的代码,您需要使用attachEvent for IEYeah它工作正常,但有一点疑问。为什么要在标记之后添加脚本?在通常情况下,如果我们在之前使用“var myImage=document.getElementById('my_image_id'),我们将能够访问该图像,但在这种情况下为什么不能呢?@Sujesh正如我在上面的回答注释部分中提到的,您的javascript代码var myImage=document.getElementById('my_image_id'));在DOM到达图像标记之前执行,结果,它抛出错误,因为它找不到id为“my_image_id”的元素……我希望clear@Sujesh:为什么不把代码放在窗口中。onload
?最好是窗口。onload
就是为了这个目的。他尝试了你的代码,在moz和chrome中工作得很好。but ie giving error“object不支持此属性或方法”@Sujesh请查看使用attachEvent for IEYeah所需的添加代码。它工作正常,但有一点疑问。为什么要在标记后添加脚本?通常情况下,如果使用“var myImage=document.getElementById('my_image_id');之前,我们可以访问该图像,但在这种情况下为什么不呢?@Sujesh正如我在上面的回答评论部分中提到的,您的javascript代码var myImage=document.getElementById('my_image_id');在DOM到达图像标记之前执行,结果,它抛出错误,因为它找不到id为“my_image_id”的元素。。我希望它clear@Sujesh:为什么不将代码放入窗口中。onload
?作为窗口更好。onload
就是为了这个目的。在moz和chrome中工作良好。但是ie发出错误“object不支持此属性或方法”@Sujesh:原因是addEventListener
不适用于所有浏览器(ie使用attachEvent
)。检查我的回答在moz和chrome中工作良好。但是ie发出错误“object不支持此属性或方法”@Sujesh:原因是addEventListener
不适用于所有浏览器(ie使用attachEvent
)。检查我的答案是的,你是对的。谢谢,如果我们把上面的代码放在任何地方,它会工作的。是的,你是对的。谢谢,如果我们把上面的代码放在任何地方,它就会工作。
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);
}
}