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 相关文章推荐
js判断生效时间不得大于失效时间的思路及代码
Apr 23 Javascript
Javascript 多浏览器兼容总结(实战经验)
Oct 30 Javascript
JavaScript编程中容易出BUG的几点小知识
Jan 31 Javascript
Javascript单例模式的介绍和实例
Oct 08 Javascript
Angular.js中用ng-repeat-start实现自定义显示
Oct 18 Javascript
微信小程序 wxapp内容组件 icon详细介绍
Oct 31 Javascript
node+express制作爬虫教程
Nov 11 Javascript
原生js实现返回顶部缓冲效果
Jan 18 Javascript
JavaScript评论点赞功能的实现方法
Mar 13 Javascript
Vue实现带进度条的文件拖动上传功能
Feb 23 Javascript
基于Vue实现拖拽功能
Jul 29 Javascript
VUE实现自身整体组件销毁的示例代码
Jan 13 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
用PHP制作静态网站的模板框架
2006/10/09 PHP
PHP中的integer类型使用分析
2010/07/27 PHP
如何在php中正确的使用json
2013/08/06 PHP
YII CLinkPager分页类扩展增加显示共多少页
2016/01/29 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
2016/12/25 PHP
javascript 对表格的行和列都能加亮显示
2008/12/26 Javascript
分享14个很酷的jQuery导航菜单插件
2011/04/25 Javascript
ff下JQuery无法监听input的keyup事件的解决方法
2013/12/12 Javascript
Node.js中HTTP模块与事件模块详解
2014/11/14 Javascript
JS+CSS实现仿支付宝菜单选中效果代码
2015/09/25 Javascript
神奇!js+CSS+DIV实现文字颜色渐变效果
2016/03/16 Javascript
JS中作用域和变量提升(hoisting)的深入理解
2016/10/31 Javascript
jQuery实现的上传图片本地预览效果简单示例
2018/03/29 jQuery
JavaScript复制变量三种方法实例详解
2020/01/09 Javascript
Python抓取京东图书评论数据
2014/08/31 Python
Python中AND、OR的一个使用小技巧
2015/02/18 Python
Python中类型检查的详细介绍
2017/02/13 Python
python 调用有道api接口的方法
2019/01/03 Python
python读取图片的方式,以及将图片以三维数组的形式输出方法
2019/07/03 Python
django 中QuerySet特性功能详解
2019/07/25 Python
Python中的sys.stdout.write实现打印刷新功能
2020/02/21 Python
浅析python表达式4+0.5值的数据类型
2020/02/26 Python
python 双循环遍历list 变量判断代码
2020/05/04 Python
Django模板获取field的verbose_name实例
2020/05/19 Python
浅谈Tensorflow加载Vgg预训练模型的几个注意事项
2020/05/26 Python
解决pyinstaller打包运行程序时出现缺少plotly库问题
2020/06/02 Python
Python fileinput模块如何逐行读取多个文件
2020/10/05 Python
法人授权委托书范本
2014/04/04 职场文书
组工干部对照检查材料
2014/08/25 职场文书
2014年煤矿工人工作总结
2014/12/08 职场文书
小学语文教师竞聘演讲稿范文
2019/08/09 职场文书
jdbc使用PreparedStatement批量插入数据的方法
2021/04/27 MySQL
关于@OnetoMany关系映射的排序问题,使用注解@OrderBy
2021/12/06 Java/Android
nginx配置限速限流基于内置模块
2022/05/02 Servers
python pygame 开发五子棋双人对弈
2022/05/02 Python