鼠标单击时,会触发两个事件,onMouseDown和onMouseUp。而Click事件包含了这两个动作。开始是认为,如果一个事件源包含了onMouseDown和onClick事件,那么onClick事件会被onMouseDown事件冲掉。比如在用alert查看结果的时候,发现onMouseDown事件触发后onClick事件没有被触发。代码如下:
脚本:
<script type="text/javascript">
var status="";
function downevent()
{
status+="ONMOUSEDOWN ";
alert(status);
status="";//显示后将状态status清空
}
function clickevent()
{
status+="OnClick ";
alert(status);
status="";//显示后将状态status清空
}
</script>
HTML代码:
<IMG SRC="mypit.jpg" WIDTH="585" HEIGHT="800" BORDER="0" ALT="图片路径不对" οnmοusedοwn="downevent()" οnclick="clickevent()">
在图片上单击,弹出框显示“ONMOUSEDOWN”。网搜了一下,解释是alert阻止了事件的传播过程,alert窗口弹出后,event停止传播,onclick事件被中止。将onmousedown事件处理的方法function downevent()里最后两行注释掉,这时候再点击图片,弹出框中显示"ONMOUSEDOWN onClick"。
结论:onClick和onMouseDown事件可以共存。
注意:onMouseDown只触发一个事件mousedown,如果在这个事件处理里有alert,那么必然要接受alert的点击确定按钮所引发的事件,而onclick事件只到了mousedown,mouseup没被触发就被中止了。