2011-02-15 86 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 
 
}

相关问题