源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

javascript onkeydown,onkeyup,onkeypress,onclick,ondblclick

  • 时间:2022-01-06 16:17 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:javascript onkeydown,onkeyup,onkeypress,onclick,ondblclick
这里给出一段测试代码: <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事件,然后如果在系统设置的双击延迟时间范围内有第二次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.setTimeout(clickTest,300); } document.ondblclick = function(){ if(this.timeout)window.clearTimeout(this.timeout); dblclickTest(); } </script> <div id="test"></div> 双击测试结果如下: dblclick dblclick dblclick dblclick
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部