2011-11-23 82 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

相關問題