2012-03-24 224 views
0

我有一組按鈕。我希望當我在其中一個按鈕上按下鼠標時,該特定按鈕將改變其背景顏色,而所有其他按鈕將保持不變。鼠標上變更按鈕

任何幫助如何做到這一點,而沒有任何回發。

+0

只需在按鈕上使用onclick處理程序。在一個'asp:Button'中,你爲一個屬性寫了'OnClientClick'(而不是'OnClick',它做了一個回發)。 – 2012-03-24 07:43:24

+1

使用CSS僞選擇器':hover' – 2012-03-24 07:47:45

+1

在鼠標上_up_?您不想在鼠標_down_上更改它,然後將其重置爲鼠標_up_?如果你只在鼠標上進行操作,顏色變化將是永久的......請顯示按鈕的HTML,以及它們所包含的任何對象(假設它們處於表單或div或其他內容)。 – nnnnnn 2012-03-24 07:55:59

回答

1

這裏做一個相當笨重的辦法:

<style> 
.selected { background-color : red; } 
</style> 
<script> 
var theForm = document.getElementById("someForm"); 
theForm.onmouseup = function(e) { 
    // allow for IE 
    if (!e) e = window.event; 

    var src = e.srcElement || e.target; 

    if (src.tagName.toLowerCase() === "input" 
     && src.type.toLowerCase() === "button"){ 
     src.className = "selected"; 
     for (var i = 0; i < theForm.children.length; i++) 
      if (src != theForm.children[i]) 
       theForm.children[i].className = ""; 
    }    
}; 
</script> 

演示:http://jsfiddle.net/Yn3pT/

這是假設按鈕是一個名爲「someForm」和形式的孩子,「選擇」一類的存在具有適當的色彩 - 顯然你會修改這個適當,以滿足您標記。

請注意,上述應該位於onload處理程序中,或者腳本塊應位於源中元素之後的某處。

請注意,onclick會比onmouseup更合適。

1
<button class="mouseup"> Click me </button> 
<button class="mouseup"> Click me </button> 
<button class="mouseup"> Click me </button> 

$buttons = document.getElementsByClassName('mouseup'); 

for(var i = 0; i < $buttons.length; i++) 
{ 
    $buttons[i].onmouseup= function(){ 
     this.style.background = 'blue'; 
     for(var j = 0; j < $buttons.length; j++) 
      if($buttons[j] != this) 
       $buttons[j].style.background = '#F0F0F0'; 
    } 
} 

http://jsfiddle.net/nQHup/5/