2013-12-23 283 views
0

我想在用戶單擊時切換按鈕的顏色。現在,當用戶點擊按鈕時會瞬間改變顏色,但會立即以毫秒爲單位變回第一種顏色。我正在使用.jsp文件與服務器通信,這些按鈕將信息發送到服務器,當服務器進行通信時,它會刷新頁面。這是否在頁面刷新時重新設置按鈕的樣式?我正在使用類'按鈕'來定義樣式。如何更改(並保持)點擊按鈕的顏色

我的問題是:我該如何無限期地改變按鈕的顏色?

<form action="FirstServlet" method="get"> 
<div id="TVs"> 
    <%for (int i=1; i<=numTargets; i++) {   
    <button id="TV<%=i%>" name= "TV<%=i%>" class="button" onClick= "TVbuttonPressed('TV<%=i%>')"> 

... 
    function TVbuttonPressed(id){  
    document.getElementById(id).style.backgroundColor = 0xFFFF00; 
} 

最終我計劃具有的功能是:

function TVbuttonPressed(id){  
    if (document.getElementById(id).style.backgroundColor == A) 
     document.getElementById(id).style.backgroundColor = B 

    else (document.getElementById(id).style.backgroundColor == B) 
     document.getElementById(id).style.backgroundColor = A 
} 

有人能幫忙解釋一下?謝謝。

+0

你爲什麼不只是添加上點擊一類。讓班級申報新的風格。 – Leeish

+0

'style.backgroundColor'會在不同的瀏覽器中返回不同的東西,而且在大多數現代瀏覽器中它會返回類似'rgba(23,143,255,1)'的東西,所以與十六進制顏色比較幾乎總是會失敗。 – adeneo

+0

你可以緩存顏色。然後相應地設置它。我也有一個瘋狂的猜測,比如把href放在按鈕寬度上,它的寬度等於按鈕寬度,然後你將得到:visited {{background} color:red;} – argentum47

回答

0

將返回在調用的函數

function TVbuttonPressed(id){  
document.getElementById(id).style.backgroundColor = 0xFFFF00; 

return false; --this will prevent the change of color while refreshing. 

}

假,將工作

+0

Thanks @ Pavan-kumar ..我試過了仍然不成功。按鈕閃爍黃色,然後恢復正常顏色。我原本以爲這是因爲刷新問題..當我刪除action = FirstServlet.java屬性時,問題仍然存在,使我感到困惑,因爲頁面不必與服務器交談並再次刷新。有誰知道我可以如何設置我的Java servlet中的backgroundColor,因此當.jsp頁面刷新時,它會根據從服務器傳遞的信息設置顏色?我已經嘗試過爲此尋找廣泛,但沒有運氣。 – gecko25

相關問題