专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Javascript教程 » ondblclick:javascript onkeydown onkeyup onkeypress onclick ondblclick »正文

ondblclick:javascript onkeydown onkeyup onkeypress onclick ondblclick

来源: 发布时间:星期四, 2009年2月5日 浏览:0次 评论:0
这里给出段测试代码:
<script type="text/javascript">
document.onkeydown = function{
document.getElementById("test").innerHTML "keydown<br/>";
}
document.onkeyup = function{
document.getElementById("test").innerHTML "keyup<br/>";
}
document.onkeypress = function{
document.getElementById("test").innerHTML "keypress<br/>";
}
</script>
<div id="test"></div>
测试结果为:
keydown
keypress
keyup
显而易见,事件发生顺序是: keydown --> keypress --> keyup
当按住个键段时间后再放开时,结果为:
keydown
keypress
keydown
keypress
keydown
keypress
keydown
keypress
...
keyup
n个keydown和n个keypress,1个keyup,系统设置时间间隔.
有关click和dblclick
前段时间群里面个朋友问过个有关click和dblclick问题,在这里同时也整理下,他要求是click和dblclick有区别事件处理,但是如果触发了dblclick则对click不做处理.如何解决?
我们先来看下事件发生情况测试代码如下:
<script type="text/javascript">
document.onclick = function{
document.getElementById("test").innerHTML "click<br/>";
}
document.ondblclick = function{
document.getElementById("test").innerHTML "dblclick<br/>";
}
</script>
<div id="test"></div>
双击时结果如下:
click
dblclick
当放慢点击速度时,结果如下:
click
click
click
可见,dblclick时,首先会触发个click事件,然后如果在系统设置双击延迟时间范围内有第 2次click事件,则被认为是dblclick事件.
那么如何解决这位朋友提出问题呢?给出代码如下:
<script type="text/javascript">
function clickTest{
document.getElementById("test").innerHTML "click<br/>";
}
function dblclickTest{
document.getElementById("test").innerHTML "dblclick<br/>";
}
document.onclick = function{
this.timeout = window.Timeout(clickTest,300);
}
document.ondblclick = function{
(this.timeout)window.clearTimeout(this.timeout);
dblclickTest;
}
</script>
<div id="test"></div>
双击测试结果如下:
dblclick
dblclick
dblclick
dblclick

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: