2009-12-31 129 views
0

我發現自己在學習web development。我剛開始閱讀關於JavaScript。作爲一種語言,我沒有任何麻煩,但我遇到了一個惱人的情況:使用javascript交換圖像

我只是想嘗試我的第一個JavaScript的一個簡單的動作:改變<img>的src屬性。因此,讓我們想象有這樣的代碼中的index.html:

<html> 
    <head> 
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 

    <script type="text/javascript" language="javascript" charset="utf-8"> 
     function activate(id) 
     { 
     document.images(id).src ="home-on.jpg"; 
     } 

     function deactivate(id) 
     { 
     document.images(id).src ="home-off.jpg"; 
     } 
    </script> 
    </head> 

    <body id="ID"> 
    <img id="home" src="home-off.jpg" 
    onmouseover="activate('home')" 
    onmouseout="deactivate('home')"/> 
    </body> 
</html> 

代碼工作完全在谷歌瀏覽器(換圖像當鼠標已經結束,並出)。但我沒有與Firefox的運氣。任何幫助?建議?

+0

建議:使用css來執行此功能:) – Jason 2009-12-31 23:41:29

回答

6

您正在使用錯誤的語法來獲取圖像。

你需要寫document.images[id](用方括號[],沒有括號()

document.images集合是一個關聯數組,這是使用括號索引。
括號用於調用函數;我不知道你的代碼爲什麼在Chrome中工作。

+3

是的,他也可以考慮使用document.getElementById(id)。 – 2009-12-31 22:58:37

+0

好的,謝謝。我不知道document.iamges是一個數組,我實際上認爲它是一個函數! 。是的,我是一名程序員,所以我知道通常如何調用函數。 – Fabzter 2009-12-31 23:09:07

+0

你會對這裏的一些初學者的平均水平感到驚訝。另外,如果你來自VB,這種區別對你來說將是新的。 – SLaks 2009-12-31 23:16:27

1

SLaks爲這個特定問題輸入了正確答案。

但是,你會發現在JavaScript中有很多這樣的情況下,不正確的語法將在一個瀏覽器中工作,但不會在下一個。爲了確保您在JavaScript中保持跨瀏覽器兼容性,您可能會發現諸如jQuery之類的庫非常方便。它不僅試圖確保您的JavaScript代碼與所有瀏覽器兼容,而且還擴展了許多強大的功能。

+0

比你,我已經在考慮使用jQuery,但我想在進入框架之前從頭開始。 :-) – Fabzter 2010-01-01 00:45:08