javascript实现单击和双击并存的方法


Posted in Javascript onDecember 13, 2014

本文实例讲述了javascript实现单击和双击并存的方法。分享给大家供大家参考。具体分析如下:

在我们进行网页开发的过程中经常会遇到这么一个问题,为一个链接注册双击事件,或者让一个按钮或者其他元素上面同时注册单击或者双击事件,这时候我们发现网页中的双击事件似乎永远都不会起作用,原因是当我们点击一次的时候,就被超链接或者单击事件截获了,本文描述了一个如何解决这个技术问题的具体方法。本解决方案的实现原理是,单击事件和双击事件都调用同一个方法,我们根据两次鼠标点击的间隔时间来判断到底是单击还是双击事件。单击事件来临的时候先不调用,等一小段时间,过了这段时间,如果没有下一次单击来临就开始调用单击对应的操作,如果有下一次点击就调用双击。
详细描述请参加下面代码清单:

<HTML> 

  <HEAD> 

  <TITLE> javascript 实现单击和双击并存 </TITLE> 

  <META NAME=" Generator" CONTENT=" EditPlus" > 

  <META NAME=" Author" CONTENT=" https://3water.com/" > 

  <META NAME=" Keywords" CONTENT=" " > 

  <META NAME=" Description" CONTENT=" " > 

  </HEAD>
  <BODY> 

  <SCRIPT LANGUAGE=" JavaScript" > 

  <!--

  var dcTime=250;       // doubleclick time

  var dcDelay=100;     // no clicks after doubleclick

  var dcAt=0;               // time of doubleclick

  var savEvent=null; // save Event for handling doClick().

  var savEvtTime=0;   // save time of click event.

  var savTO=null;       // handle of click setTimeOut

  

  function showMe(txt) { 

    document.forms[0].elements[0].value += txt; 

  } 

  

  function handleWisely(which) { 

    switch (which) { 

        case " click" :            

            savEvent = which; 

            d = new Date(); 

            savEvtTime = d.getTime(); 

            savTO = setTimeout(" doClick(savEvent)" , dcTime); 

            break; 

        case " dblclick" :

            doDoubleClick(which); 

            break; 

        default:

    } 

  } 

  

  function doClick(which) { 

    if (savEvtTime - dcAt <= 0) { 

        return false; 

    } 

    showMe(" 单击" ); 

  } 

  

  function doDoubleClick(which) { 

    var d = new Date(); 

    dcAt = d.getTime(); 

    if (savTO != null) { 

        savTO = null; 

    } 

    showMe(" 双击" ); 

  }
  //--> 

  </SCRIPT>
<p> 

            <a href=" javascript:void(0)" 

                onclick=" handleWisely(event.type)" 

                ondblclick=" handleWisely(event.type)" 

                style=" color: blue; font-family: arial; cursor: hand" > 

          点击一下看看结果:

      </a> 

      </p> 

        

      <form> 

          <table> 

              <tr> 

                  <td valign=" top" > 

                    事件模式: <textarea rows=" 4" cols=" 60" wrap=" soft" > </textarea> 

                  </td> 

              </tr> 

              <tr>

                  <td valign=" top" > 

                      <input type=" Reset" > 

                  </td> 

              </tr> 

          </table> 

      </form> 

  </BODY> 

</HTML>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
javascript 支持链式调用的异步调用框架Async.Operation
Aug 04 Javascript
JavaScript学习笔记(十)
Jan 17 Javascript
JScript分割字符串示例代码
Sep 04 Javascript
jQuery标签替换函数replaceWith()的使用例子
Aug 28 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
Aug 27 Javascript
MVC Ajax Helper或Jquery异步加载部分视图
Nov 29 Javascript
BootStrap智能表单实战系列(九)表单图片上传的支持
Jun 13 Javascript
WEB开发之注册页面验证码倒计时代码的实现
Dec 15 Javascript
基于百度地图api清除指定覆盖物(Overlay)的方法
Jan 26 Javascript
javascript高仿热血传奇游戏实现代码
Feb 22 Javascript
JS+css3实现幻灯片轮播图
Aug 14 Javascript
React实现轮播效果
Aug 25 Javascript
Javascript数组与字典用法分析
Dec 13 #Javascript
jQuery实现表单提交时判断的方法
Dec 13 #Javascript
js实现iframe跨页面调用函数的方法
Dec 13 #Javascript
javascript里使用php代码实例
Dec 13 #Javascript
jQuery使用height()获取高度需要注意的地方
Dec 13 #Javascript
js与css实现弹出层覆盖整个页面的方法
Dec 13 #Javascript
jQuery对于显示和隐藏等常用状态的判断方法
Dec 13 #Javascript
You might like
全国FM电台频率大全 - 18 湖南省
2020/03/11 无线电
收音机鉴频器对声音的影响和频偏分析
2021/03/02 无线电
php getsiteurl()函数
2009/09/05 PHP
用php实现百度网盘图片直链的代码分享
2012/11/01 PHP
php发送post请求的三种方法
2014/02/11 PHP
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
2014/10/15 PHP
PHP时间类完整实例(非常实用)
2015/12/25 PHP
JavaScript事件列表解说
2006/12/22 Javascript
动态刷新 dorado树的js代码
2009/06/12 Javascript
jQuery用unbind方法去掉hover事件及其他方法介绍
2013/03/18 Javascript
node.js中的buffer.Buffer.isBuffer方法使用说明
2014/12/14 Javascript
javascript结合canvas实现图片旋转效果
2015/05/03 Javascript
JavaScript中的定时器之Item23的合理使用
2015/10/30 Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
2018/11/23 Javascript
JS实现单张或多张图片持续无缝滚动的示例代码
2020/05/10 Javascript
基于JS实现计算24点算法代码实例解析
2020/07/23 Javascript
[04:54]DOTA2-DPC中国联赛1月31日Recap集锦
2021/03/11 DOTA
手动实现把python项目发布为exe可执行程序过程分享
2014/10/23 Python
在ironpython中利用装饰器执行SQL操作的例子
2015/05/02 Python
python远程连接服务器MySQL数据库
2018/07/02 Python
windows系统中Python多版本与jupyter notebook使用虚拟环境的过程
2019/05/15 Python
在Pandas中处理NaN值的方法
2019/06/25 Python
利用Python检测URL状态
2019/07/31 Python
python paramiko远程服务器终端操作过程解析
2019/12/14 Python
基于jupyter代码无法在pycharm中运行的解决方法
2020/04/21 Python
python获取整个网页源码的方法
2020/08/03 Python
基于注解实现 SpringBoot 接口防刷的方法
2021/03/02 Python
德国拖鞋网站:German Slippers
2019/11/08 全球购物
Stio官网:男女、儿童户外服装
2019/12/13 全球购物
计算机专业毕业生求职信
2014/04/30 职场文书
企业诚信承诺书
2014/05/23 职场文书
监察局领导班子四风问题整改措施思想汇报
2014/10/05 职场文书
2014年高数考试作弊检讨书
2014/12/14 职场文书
校长师德表现自我评价
2015/03/05 职场文书
面试通知邮件
2015/04/20 职场文书
Python使用Opencv打开笔记本电脑摄像头报错解问题及解决
2022/06/21 Python