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实现的分页函数
Feb 07 Javascript
用函数式编程技术编写优美的 JavaScript_ibm
May 16 Javascript
js 提交和设置表单的值
Dec 19 Javascript
JQuery 学习笔记 选择器之二
Jul 23 Javascript
jQuery toggle()设置CSS样式
Nov 05 Javascript
javascript实现判断鼠标的状态
Jul 10 Javascript
快速获取/设置iframe内对象元素的几种js实现方法
May 20 Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
Aug 05 Javascript
Vue.js实现一个自定义分页组件vue-paginaiton
Sep 05 Javascript
基于JS+Canves实现点击按钮水波纹效果
Sep 15 Javascript
AngularJS实现使用路由切换视图的方法
Jan 24 Javascript
Element MessageBox弹框的具体使用
Jul 27 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 session 检测和注销
2009/03/16 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
2014/05/12 PHP
php从完整文件路径中分离文件目录和文件名的方法
2015/03/13 PHP
PHP中函数gzuncompress无法使用的解决方法
2017/03/02 PHP
新老版本juqery获取radio对象的方法
2010/03/01 Javascript
jquery offset函数应用实例
2012/11/14 Javascript
Js nodeType 属性全面解析
2013/11/14 Javascript
JS循环遍历JSON数据的方法
2014/07/08 Javascript
基于javascript实现漂亮的页面过渡动画效果附源码下载
2015/10/26 Javascript
体验jQuery和AngularJS的不同点及AngularJS的迷人之处
2016/02/02 Javascript
Javascript缓存API
2016/06/14 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
2017/05/19 Javascript
Nodejs回调加超时限制两种实现方法
2017/06/09 NodeJs
详谈javascript精度问题与调整
2017/07/08 Javascript
详解AngularJS 过滤器的使用
2018/06/02 Javascript
Vue.js 利用v-for中的index值实现隔行变色
2018/08/01 Javascript
浅谈关于JS下大批量异步任务按顺序执行解决方案一点思考
2019/01/08 Javascript
vue+element tabs选项卡分页效果
2020/06/29 Javascript
JS实现音乐钢琴特效
2020/01/06 Javascript
[00:59]DOTA2英雄背景故事——上古巨神
2020/06/28 DOTA
Python实现自定义函数的5种常见形式分析
2018/06/16 Python
Python实现打印实心和空心菱形
2019/11/23 Python
TensorFlow tf.nn.conv2d实现卷积的方式
2020/01/03 Python
Python实现疫情通定时自动填写功能(附代码)
2020/05/27 Python
Django自带的用户验证系统实现
2020/12/18 Python
HTML5 Canvas中使用路径描画二阶、三阶贝塞尔曲线
2015/01/01 HTML / CSS
适合各种场合的美食礼品:Harry & David
2016/08/03 全球购物
世界上最大的冷却器制造商:Igloo Coolers
2019/07/23 全球购物
测试驱动开发的主要步骤是什么
2014/12/10 面试题
异步传递消息系统的作用
2016/05/01 面试题
安全承诺书格式
2014/05/21 职场文书
党的群众路线教育实践活动总结材料
2014/10/30 职场文书
2014财务年度工作总结
2014/11/11 职场文书
农民工工资承诺书大全
2015/05/04 职场文书
nginx如何将http访问的网站改成https访问
2021/03/31 Servers
海贼王十大潜力果实,路飞仅排第十,第一可毁世界(震震果实)
2022/03/18 日漫