2013-12-23 164 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

相关问题