2011-11-29 103 views
0

在我们的移动网络应用中,我们有一些输入按钮,默认背景颜色设置为红色。现在点击按钮,我们想要将颜色更改为蓝色以显示一些活动。只要按钮的预期onclick功能完成,该按钮应保持活动的背景色。一旦onclick函数完成,背景颜色就会变回默认的红色。在移动网络应用中点击更改按钮背景颜色

我尝试了几个解决方案来实现上述行为。但没有一个按预期工作。

1)由于在手机浏览器中没有onmouseover事件,我使用onclick事件来改变按钮的颜色。

<input type="button" id="validate" class="redButton" value="Validate" onclick="handleOnClick(this);"/>; 

function handleOnClick() { 
     changeColor('blue'); 
     doSomething();  
     changeColor('red'); 
} 

理想的情况下,当用户点击按钮,handleOnClick()函数被调用,第一个按钮的背景颜色应更改为蓝色,那么它应该调用DoSomething的(),最后它应该改变颜色回红色。实际上,doSomething()执行起来非常快,以至于用户看不到按钮颜色变化,并且它仍然是红色的。在浏览器可以更改类并应用changeColor('blue')的新CSS样式之前,它会调用changeColor('red')。

2)我尝试了“ontouchstart”事件来改变背景颜色。但是这种方法的问题在于,一旦你触摸按钮,然后将手指从按钮上移开,它仍然会触发ontouchstart,但不会触发onclick事件。

有没有其他方法可以改变移动浏览器的按钮颜色?谢谢。

+0

也许你可以做这样的事情? 'changeColor('blue') setTimeout(doSomethingLiteral,1000) changeBack()' – Zlatko

+0

即使我想过。但等待一些其他建议。 – indusBull

回答