2017-02-06 43 views
0

我需要一些幫助JavaScript img src單擊事件。Javascript按鈕SRC

可以說,我有一個2圖像的按鈕,p ressed和unpressed。

btn1_On = new Image(); 
btn1_On.src = "../img/numpad/03_Button_1_Push.jpg"; 

btn1_Off = new Image(); 
btn1_Off.src = "../img/numpad/03_Button_1_No_Push.jpg"; 

和HTML:

<div class="Numpad_1" onmousedown="btnPress('btn1');return true;" 
    onmouseup="btnRelease('btn1');return true;" 
    onclick="btnPress('btn1');return true;"> 
    <img src="..\img\numpad\03_Button_1_No_Push.jpg" id="btn1" /> 
</div> 

我我想知道我乘功能在HTML每一個按鈕,所以我創建功能按BTN發佈

function btnPress(btn) { 
    document.getElementById(btn).src = btn+'_On'.src; 
} 

function btnRelease(btn) { 
    document.getElementById(btn).src = btn + '_Off.src'; 
} 

所以,一個問題是,btn +'_ On'.src - 不能初始化路徑 圖像(未定義)。

Thnx任何幫助。

PS:我有一定的侷限性,它必須如果你在窗口創建的對象btn1_On對IE 6

+0

側面說明:停止支持IE9 <瀏覽器 – Satpal

+0

如果你只希望存儲圖像的路徑,那麼你不需要'Image'對象。您可以將文本存儲爲字符串。 –

+1

@BlazeSahlzen,OP必須使用它來預加載圖像,如果沒有,你的建議是有效的。 – Satpal

回答

2

運行/全球範圍內,那麼你用

document.getElementById(btn).src = window[btn+'_On'].src; 

然而,我會建議創建一個對象,然後訪問屬性

var obj = {}; 
obj.btn1_On = new Image(); 
obj.btn1_Off = new Image(); 

使用括號符號根據字符串獲取屬性。

​​
+0

偉大的,thnx,但爲什麼創建對象是推薦? – Aleksey

+0

@Aleksey,我會更容易維護和調試,性能明智得多好多 – Satpal

+0

好的,thnx @Satpal – Aleksey