2016-01-28 32 views
0

我有一個#myObject元素。如何在onClick函數後忽略onMouseOut?

我試圖讓#myObject的背景更改爲#000,當鼠標懸停在它上面並將其背景更改回#ffff00懸停出來。

但是我想讓#myObject的背景更改爲#FFF,當用戶點擊它時。

我對onMouseOver,onMouseOut和onClick使用了3個函數。

但是用戶點擊後,觸發了「onMouseOut」功能。

如何在用戶點擊後將鼠標移出#myObject之後獲得onClick背景切換功能?

<div id="myObject" onMouseOver='objHover(this.id);' onMouseOut='objMouseOut(this.id);' onclick='objClick(this.id);'></div> 

function objClick(id) { 
    document.getElementById('captchaResposta').value = id; 
    $('#'+ id).css('background','#FFF'); 
} 

function objHover(id) { 
    document.getElementById('captchaResposta').value = id; 
    $('#'+ id).css('background','#000'); 
} 

function objMouseOut(id) { 
    document.getElementById('captchaResposta').value = id; 
    $('.imagemCaptcha').css('background','#ffff00'); 
} 

回答

0

下面應該幫助,它採用了可變objSelected跟蹤鼠標點擊的鼠標移開功能的檢查。你仍然需要弄清楚何時恢復對象的顏色回到它原來的顏色

<div id="myObject" onMouseOver='objHover(this.id);' onMouseOut='objMouseOut(this.id);' onclick='objClick(this.id);'></div> 

var objSelected = false; 

function objClick(id) { 
    document.getElementById('captchaResposta').value = id; 
    $('#'+ id).css('background','#FFF'); 
    objSelected = true; 
} 

function objHover(id) { 
    document.getElementById('captchaResposta').value = id; 
    $('#'+ id).css('background','#000'); 
} 

function objMouseOut(id) { 
    document.getElementById('captchaResposta').value = id; 
    if (objSelected == false) 
    { 
     $('.imagemCaptcha').css('background','#ffff00'); 
    } 
} 
0

爲什麼不使用CSS hover僞類來改變背景,並使用JavaScript只爲click事件?這樣一來,當鼠標離開元素,它仍然保持顏色點擊

function objClick(id) { 
 
    $("#myObject").css('background', '#FFF'); 
 
}
#myObject { 
 
    width: 100px; 
 
    height: 100px; 
 
    background: #ffff00; 
 
} 
 
#myObject:hover { 
 
    background: #000000; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="myObject" onclick='objClick(this.id);'></div>

0

當它「的onMouseOver,以及鼠標移開的onClick。」

我想你可以使用你應用於元素的類(而不是改變顏色)在事件上。單擊時,您可以添加clicked類(或任何您想使用的名稱)。然後,在mouseout事件中,您可以檢查選擇器是否具有clicked類:如果不是,那麼您可以添加mouseout類(以及其相應的背景顏色)。它會做得很好。