2011-10-04 51 views
0

所以,我一直在使用這個JavaScript代碼段通過了一個相當大的網站翻車:一個JavaScript翻轉的多個實例 - 停止運作

<a href=http://www.barnesandnoble.com onMouseOver= "if (document.images) document.bn_off.src= 'img/vendorbuttons/bn_on.gif';" onMouseOut= "if (document.images) document.bn_off.src= 'img/vendorbuttons/bn_off.gif';"><img src="img/vendorbuttons/bn_off.gif" name=bn_off border=0></a> 

而一直偉大的工作,並毫不費力地,到現在爲止 - 我有幾頁將在頁面中使用購買按鈕的相同翻轉圖像,它們將與正在實施的不同鏈接相同。 - 我開始使用這個JS,多次使用相同的圖像,所有JS翻轉停止工作,不呈現'關閉狀態'。

最終 - 顯然,我不能有多個JS翻轉使用相同的圖像多次一次與此代碼?有什麼建議麼?

+0

要冒險猜測,並詢問您是否更改了不同頁面上鍊接的名稱? – Paddy

+0

爲什麼你現在不使用css sprite? –

+0

那麼,我已經從上面設置了每個按鈕的所有JS代碼 - 所以如果在代碼中有一個簡單的修復,那將會非常省時。但是,是的,我可能應該下一次 - 精靈CS3雖然,對吧? –

回答

1

你確定沒有改變?圖片或代碼? 由於沒有任何線索,這裏的HTML(因爲你說前面的工作),我只能建議如下:

href="http://www.barnesandnoble.com"name="bn_off"border="0" < - 這些屬性值中缺少代碼雙引號。

另請嘗試添加id="bn_off"(您已經有name="bn_off",請保留)。

編輯:

我想我知道爲什麼。由於您正在複製並粘貼此文件以在多個位置使用,因此您會獲得多個帶有SAME名稱bn_off的鏈接,這就是停止工作的原因。

它可能是WAY更容易與jQuery和/或CSS但這裏你可以與你有什麼做什麼:

在HTML的HEAD部分添加script塊內的這兩個功能:

function OnMouseOver(link) 
    { 
     if (document.images) 
     { 
      var imageElements = link.getElementsByTagName("img"); 
      imageElements[0].src = 'img/vendorbuttons/bn_on.gif'; 
     } 
    } 

    function OnMouseOut(link) 
    { 
     if (document.images) 
     { 
      var imageElements = link.getElementsByTagName("img"); 
      imageElements[0].src = 'img/vendorbuttons/bn_off.gif'; 
     } 
    } 

更改HTML像這樣的鏈接:

<a href="http://www.barnesandnoble.com" onMouseOver= "OnMouseOver(this);" onMouseOut= "OnMouseOut(this);"> 
    <img src="img/vendorbuttons/bn_off.gif" name="bn_off" border="0"> 
</a> 

現在,您可以複製和粘貼的鏈接,你婉一樣多噸,JavaScript不會取決於名稱。

如果我是你,我會用jQuery和CSS來簡化事情。

希望這會有所幫助。

+0

謝謝,但都沒有成功。那些我沒有多個實例,沒有雙引號圍繞這些領域工作 - 此外,代碼沒有變化,並且在複製和粘貼之前有效,試圖在具有相同圖像的多個實例中使用(不同的鏈接) - 這很奇怪。 –

+0

@ LouieLouie77我編輯了我的答案,這將解決您的問題(我測試過)。確保在html的'HEAD'部分的'script'塊中添加這兩個函數。 –

0

這是如何解決您現有的腳本。但是,Guganeshan的解決方案更加清潔。

<a href=http://www.barnesandnoble.com onMouseOver= "if (document.images) this.src= 'img/vendorbuttons/bn_on.gif';" onMouseOut= "if (document.images) this.src= 'img/vendorbuttons/bn_off.gif';"><img src="img/vendorbuttons/bn_off.gif" border=0></a>