2011-02-15 209 views
1

我想問如何區分onClick和onMouseOver和onMouseOut。Javascript onClick和onmouseover和onmouseout

例如, 我用的onMouseOver改變標籤的背景採用以灰色

onMouseOver="this.style.backgroundColor=Blue;" 

的onmouseout帶走此背景

onMouseOut="this.style.backgroundColor=White;" 

我怎樣寫的onClick一個電話,讓藍色背景並保持在那裏,即使當鼠標光標離開標籤?

謝謝

回答

0

您需要使用事件偵聽器。我建議爲此使用一個框架,比如prototypejs或jquery。

您將需要事件監聽器/觀察者來觀察mouseOver,mouseOut和單擊事件。當您的點擊事件觸發時,您將停止觀察mouseOver和mouseOut。這應該做的伎倆。

3

你有兩個CSS類,「活動」和「點擊」。他們都將背景設置爲藍色。點擊後,添加「點擊」類。在鼠標懸停時,添加「活動」類。在鼠標移出時,您將移除「活動」類。如果元素具有「點擊」類,它仍然有它,並因此保持它的顏色。

0

我會在MouseOut中進行檢查,只有當它不是藍色時纔會更改顏色。

+1

以及鼠標在顏色也是藍色的,所以在這種情況下,它也不會改變顏色。 – 2011-02-15 09:00:13

0

正常情況下,我會添加一個CSS類到具有活動(最後點擊的項目)狀態的元素。該CSS類可以優先於元素的常規樣式。

我甚至會使用CSS而不是JavaScript進行懸停狀態更改。

0

非常簡單的解決方法是在這裏爲您提供幫助。希望對你有效。

<script type="text/javascript"> 
 
function row_mout(mout_value) { 
 
    document.getElementById(mout_value).style.background = "#FFFFFF"; 
 
} 
 

 
function row_mover(mover_value){ 
 
    document.getElementById(mover_value).style.background = "#123456"; 
 
} 
 

 
function row_click(click_value) { 
 
\t if(document.getElementById('chk_'+click_value).checked == true){ 
 
\t \t document.getElementById(click_value).style.background = "#123456"; 
 
\t \t document.getElementById(click_value).onmouseout = ""; 
 
\t \t document.getElementById(click_value).onmouseover = ""; 
 
\t }//if over 
 
\t else if(document.getElementById('chk_'+click_value).checked == false){ 
 
\t \t document.getElementById(click_value).style.background = "#FFFFFF"; 
 
\t \t document.getElementById(click_value).onmouseout = function onmouseout(event){ 
 
      row_mout(click_value); 
 
     } 
 
\t \t document.getElementById(click_value).onmouseover = function onmouseover(event){ 
 
      row_mover(click_value); 
 
     } 
 
\t }//else if over 
 
}

相關問題