2014-04-11 21 views
1

我在w3school上找到关于onmousedown,onmouseup和onclick事件的以下信息: onmousedown,onmouseup和onclick事件都是鼠标点击的所有部分。首先当点击鼠标按钮时,onmousedown事件被触发,然后,当释放鼠标按钮时,onmouseup事件被触发,最后,当鼠标点击完成时,触发onclick事件。为什么onmouseup的效果永不生效?

后来我写下面的代码来测试,但onmouseup事件从未发生过? 我在发布点击后只显示“点击”,但从未出现“谢谢你”。任何人都可以请澄清,对我?谢谢。

<!DOCTYPE html> 
<html> 
<body> 

<div onmousedown="mDown(this)" onmouseup="mUp(this)" onclick = "mClick(this)" style="background-color:#D94A38;width:90px;height:20px;padding:40px;">Click Me</div> 

<script> 
function mClick(obj) 
{ 
    obj.style.backgroundColor="#ec5ead"; 
    obj.innerHTML="Clicked" 
} 
function mDown(obj) 
{ 
    obj.style.backgroundColor="#1ec5e5"; 
    obj.innerHTML="Release Me" 
} 

function mUp(obj) 
{ 
    obj.style.backgroundColor="#FFFFFF"; 
    obj.innerHTML="Thank You a lot" 
} 
</script> 

</body> 
</html> 
+2

因为你正在*取代内容; 'mouseup'事件触发,然后'click'事件在它之后触发(足够快,因为你不能看到'mouseup'事件的效果)。如果追加到innerHTML属性而不是设置新值会发生什么? –

+0

作为一个方面说明,你可能想考虑另一个参考比w3schools ... –

+0

它发生。你只需要点击文本 –

回答

3

MouseUp事件射击,这只是它后面紧跟的单击事件,这样你就不会得到一个机会看到三江源消息。如果您删除了onclick处理程序,您将看到该消息。

1

单击一个元素是当你在同一个元素上双击鼠标和鼠标。 mouseup事件正在被触发,但最后发生的事情是点击事件。