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 数组的方法集合
Jun 05 Javascript
按Enter键触发事件的jquery方法实现代码
Feb 17 Javascript
js对象基础实例分析
Jan 13 Javascript
JavaScript中split() 使用方法汇总
Apr 17 Javascript
JavaScript对象数组排序函数及六个用法
Dec 23 Javascript
学习JavaScript设计模式之装饰者模式
Jan 19 Javascript
jquery实现自适应banner焦点图
Feb 16 Javascript
JS正则替换去空格的方法
Mar 24 Javascript
angular过滤器实现排序功能
Jun 27 Javascript
JS实现的抛物线运动效果示例
Jan 30 Javascript
基于Vuex无法观察到值变化的解决方法
Mar 01 Javascript
微信小程序vant弹窗组件的实现方式
Feb 21 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 Smarty生成EXCEL文档的代码
2008/08/23 PHP
PHP翻页跳转功能实现方法
2020/11/30 PHP
PHP实现支持加盐的图片加密解密
2016/09/09 PHP
JQuery中getJSON的使用方法
2010/12/13 Javascript
表单JS弹出填写提示效果代码
2011/04/16 Javascript
Jquery实现仿新浪微博获取文本框能输入的字数代码
2013/02/22 Javascript
关于jQuery参考实例 1.0 jQuery的哲学
2013/04/07 Javascript
document.documentElement的一些使用技巧
2013/04/18 Javascript
js实现图片放大和拖拽特效代码分享
2015/09/05 Javascript
浅谈jquery点击label触发2次的问题
2016/06/12 Javascript
jQuery+CSS实现简单切换菜单示例
2016/07/27 Javascript
canvas学习之API整理笔记(二)
2016/12/29 Javascript
Vue-Router实现页面正在加载特效方法示例
2017/02/12 Javascript
基于iScroll实现下拉刷新和上滑加载效果
2017/07/18 Javascript
JS实现十字坐标跟随鼠标效果
2017/12/25 Javascript
详解刷新页面vuex数据不消失和不跳转页面的解决
2018/01/30 Javascript
Angularjs之如何在跨域请求中传输Cookie的方法
2018/06/01 Javascript
微信小程序使用scroll-view标签实现自动滑动到底部功能的实例代码
2018/11/09 Javascript
JavaScript面试中常考的字符串操作方法大全(包含ES6)
2020/05/10 Javascript
基于JS实现计算24点算法代码实例解析
2020/07/23 Javascript
[04:03]辉夜杯主赛事 12月25日RECAP精彩回顾
2015/12/26 DOTA
使用Python对微信好友进行数据分析
2018/06/27 Python
Python 脚本获取ES 存储容量的实例
2018/12/27 Python
python学生管理系统
2019/01/30 Python
Python3实现的回文数判断及罗马数字转整数算法示例
2019/03/27 Python
Python3.5内置模块之random模块用法实例分析
2019/04/26 Python
捷克汽车配件和工具销售网站:TorriaCars
2018/02/26 全球购物
工商管理专业学生的自我评价
2013/10/01 职场文书
公司周年庆典邀请函
2014/01/12 职场文书
大学毕业生求职自荐信
2014/02/20 职场文书
客户接待方案
2014/02/26 职场文书
同学聚会邀请函
2015/01/30 职场文书
领导干部学习十八届五中全会精神心得体会
2016/01/05 职场文书
《巨人的花园》教学反思
2016/02/19 职场文书
vue-cropper组件实现图片切割上传
2021/05/27 Vue.js
使用 Koa + TS + ESLlint 搭建node服务器的过程详解
2022/05/30 NodeJs