2014-06-04 35 views
0

我製作了一個評分系統,當用戶鼠標懸停時,星星會變成黃色,但當用戶鼠標移出時,星星會變成白色。MouseEvent和Onclick

但是,我想做一個功能,當用戶點擊明星時,它變成黃色,即使在鼠標移出時也不會回白。我嘗試使用鼠標按下來執行此操作,但鼠標懸停事件仍然出現。

<script> 
function changeImage1() { 
     document.getElementById('myImage1').src="yellow.jpg";} 

function reset(){ 
document.getElementById('myImage1').src= "whitestar.jpg";} 
</script> 

<body> 
<img id="myImage1" onmouseover="changeImage1()" onmouseout="reset()" width="150" height="150"src="whitestar.jpg"> 
</body> 

回答

0

爲什麼不用鼠標測試黃色,然後返回false?

0
<img id="myImage1" width="150" height="150"> 
<script> 
    var img = document.getElementById('myImage1'); 
    img.addEventListener('mouseover', changeImage1, false); 
    img.addEventListener('mouseout', reset, false); 
    img.addEventListener('click', click_, false); 

    function changeImage1() { 
     img.src = 'yellow.jpg'; 
    } 
    function reset() { 
     img.src = 'whitestar.jpg'; 
    }; 
    function click_() { 
     img.removeEventListener('mouseover', changeImage1, false); 
     img.removeEventListener('mouseout', reset, false); 
    }; 
</script> 
+0

在哪裏說明的問題和解決方案? –

+0

問題::當我們不需要它時,事件發生, 解決方案::刪除不需要的事件 –

+0

請編輯您的答案以提供更多信息。 –

0

您可以使用jQuery的單擊事件處理

<img id="myImage" src="whitestar.jpg"> 

指派該點擊處理程序img元素

$("#myImage").click(function() { 
    $(this).attr('src','yellow.jpg'); 

}); 

編輯,而不JQUERY

<img onclick="this.src='yellow.jpg';" id="myImage" src="whitestar.jpg"> 
+0

從[tag:javascript]標籤描述:*「除非包含框架/庫的標籤也包含在內,否則預計會有純JavaScript的答案。」*。這個問題沒有用jQuery標記,所以請不要提供jQuery答案*或者*添加至少添加一個純JS解決方案。 –