2011-11-23 84 views
0

我遇到了我正在处理的图像交换脚本的问题。它在Chrome和IE 8中运行得非常漂亮,但是在Firefox中我得到IMG1未定义。我试过使用var image1 = document.getElementById("IMG1"),但后来我只是得到image1是NULL。任何帮助,将不胜感激。这是我的代码和标记。未在Firefox中定义IMG1

<script type="text/javascript"> 

    function imgSwap() { 
     IMG1.src = "/images/stories/clubpics_on.png"; 
     IMG2.src = "/images/stories/facebook_off.png"; 
     return(false); 
} 
function imgSwap2() { 
     IMG1.src = "/images/stories/clubpics_off.png"; 
     IMG2.src = "/images/stories/facebook_on.png"; 
     return(false); 
     } 
</script> 

    <img src="/images/stories/clubpics_on.png" name="IMG1" id="IMG1" class="IMG1" style="position:absolute; left:-19px; width:165px" value="IMG1" onclick="imgSwap();"/ > 

<img src="/images/stories/facebook_off.png" class="IMG2" value="IMG2" name="IMG2" id="IMG2" style="position:relative; left:123px; width:165px" onclick="imgSwap2();" /> 

回答

3

Firefox不会自动创建具有“id”值的元素的全局引用。改为使用document.getElementById("IMG1")

如果你试过变量“图像1” 即赋值语句外两个函数,变量将是null因为该代码会之前运行被添加到DOM元素。如果你把这个代码放在里面的功能,它会起作用的。

+0

+1我试了一下,它的工作原理,我想知道他为什么说它不是 – Ibu

+0

@Ibu可能他的职责是在元素成为DOM的一部分之前运行的。 – Pointy

+0

@Ibu第一次通过/点击它可能在FF3上不会很好,也就是说,直到你第二次获得它的引用为止。 – david

相关问题