2010-09-27 184 views
0

我有4個圖像,我用作導航菜單,當我點擊一個它點亮(改變圖像)和電流熄滅,等等。Javascript不工作在Windows上的IE 8

它運作良好,在Chrome和FF(無螢火蟲錯誤)

但在IE8的點擊的功能(它改變div的視圖)工作,它只是不改變這裏的IMG SRC是的代碼:

<li id="bulletli1"> 
<a href="#"> 
    <img id="bullethover1" src="img/bulleto.png" height="30px" width="30px" style="position:absolute"> 
<img id="bullet1" name="bullet1" height="30px" width="30px" src="img/bulletwhite.png" onmousedown="this.src='img/bulletwhite.png';document.images['bullet2'].src='img/bullet.png';document.images['bullet3'].src='img/bullet.png';document.images['bullet4'].src='img/bullet.png'" style="opacity:0.4;filter:alpha(opacity=40)"/> 
    </a></li> 

所以基本上會發生什麼是內onmousedown事件this.src得到爲白色的子彈和所有其他被置暗子彈點。開發人員的工具沒有錯誤。

請問這個src在IE8下不工作嗎?任何建議將有助於,謝謝!

回答

1

如果不存在多個具有相同名稱/ id-Attribute的圖像,請檢查。

在這種情況下,IE將採取具有相同名稱的圖像的最後(請注意,document.images [「somename」]可以是陣列),而其他UserAgents將採取第一一個。 也許在這種情況下,您只會看不到更改,例如,如果更改的圖像位於視口之外。

greets

1

你不應該像這樣將你的JS嵌入到你的代碼中。雖然我建議使用像jQuery這樣的庫(這會讓你的生活更輕鬆),但我會在沒有它的情況下進行解釋。

不要將JS嵌入到代碼中。如果你真的真的需要,有它調用這樣的功能:在腳本標籤之間的頭部分

<img id="bullet1" name="bullet1" height="30px" width="30px" src="img/bulletwhite.png" onmousedown="bulletClicked()" style="opacity:0.4;filter:alpha(opacity=40)"/>

然後你會遇到你的JavaScript:

function bulletClicked() { 
    this.src='img/bulletwhite.png'; 
    document.images['bullet2'].src='img/bullet.png'; 
    document.images['bullet3'].src='img/bullet.png'; 
    document.images['bullet4'].src='img/bullet.png'; 
} 

從它的外觀像你這樣做的方式是錯誤的,你可能會把這個onclikc代碼放到每一個子彈圖像中,每個子圖都會稍微修改一下。相反,如果你只是使用事件,你會簡化很多。

如果你做了這樣的事情......(並且在一個樣式部分中指定了它們的高度,寬度和其他CSS,那麼它們屬於哪個,不要做你所做的事情,再次)。

​​

然後你的JavaScript可能會...

function bulletClicked(e) { 
    document.images['bullet1'].src='img/bullet.png'; 
    document.images['bullet2'].src='img/bullet.png'; 
    document.images['bullet3'].src='img/bullet.png'; 
    document.images['bullet4'].src='img/bullet.png'; 
    e.src='img/bulletwhite.png'; 
} 

有更好的方法來處理這類問題,我會強烈reccomend你拿起jQuery和做一些工作分離你的頁面的HTML,JavaScript和CSS組件。

+0

如果您的代碼在IE8中工作,我會禮貌地忽略您的居高臨下評論。我在頭部嘗試了你的第二個函數,並在onmousedown中使用了bulletClicked(this),並且按鈕可以工作,但img src不會改變。 – 2010-09-27 19:45:02

+1

居高臨下的言論?您將CSS和JS嵌入到HTML元素中。對我來說,沒有什麼事情可以讓你知道這是不好的習慣,這是事實。 – Incognito 2010-09-27 20:00:55

+1

此外,它工作正常,我不知道你的問題是什麼。 http://jsfiddle.net/HQsed/ – Incognito 2010-09-27 20:22:05

1

我無法重現所描述的行爲。圖像似乎被替換成OK。你可以提供什麼進一步的細節?當你點擊其他3張圖片時會發生什麼?他們是否直接獲取圖片網址?