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 相关文章推荐
使用jQuery动态加载js脚本文件的方法
Apr 03 Javascript
avalonjs制作响应式瀑布流特效
May 06 Javascript
JavaScript中getUTCMinutes()方法的使用详解
Jun 10 Javascript
深入浅析同源策略和跨域访问
Nov 26 Javascript
如何用input标签和jquery实现多图片的上传和回显功能
May 16 jQuery
javascript将非数值转换为数值
Sep 13 Javascript
说说Vuex的getters属性的具体用法
Apr 15 Javascript
angular inputNumber指令输入框只能输入数字的实现
Dec 03 Javascript
js实现轮播图效果 z-index实现轮播图
Jan 17 Javascript
详解Vue template 如何支持多个根结点
Feb 10 Javascript
jquery实现烟花效果(面向对象)
Mar 10 jQuery
nuxt.js写项目时增加错误提示页面操作
Nov 05 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遍历文件夹所有文件子文件夹函数代码
2013/11/27 PHP
php微信公众账号开发之前五个坑(一)
2016/09/18 PHP
Symfony2创建基于域名的路由相关示例
2016/11/14 PHP
jQuery实战之仿淘宝商城左侧导航效果
2011/04/12 Javascript
jWiard 基于JQuery的强大的向导控件介绍
2011/10/28 Javascript
如何解决Jquery库及其他库之间的$命名冲突
2013/09/15 Javascript
FF IE浏览器修改标签透明度的方法
2014/01/27 Javascript
jquery实现的网页自动播放声音
2014/04/30 Javascript
jQuery学习总结之jQuery事件
2014/06/30 Javascript
网页禁用右键菜单和鼠标拖动选择方法小结
2015/02/25 Javascript
JavaScript获得url所有参数键值表的方法
2015/03/21 Javascript
jQuery使用drag效果实现自由拖拽div
2015/06/11 Javascript
JS实现简单的二维矩阵乘积运算
2016/01/26 Javascript
详解AngularJS过滤器的使用
2016/03/11 Javascript
vue实现todolist单页面应用
2017/04/11 Javascript
nodejs入门教程六:express模块用法示例
2017/04/24 NodeJs
使用Bootstrap和Vue实现用户信息的编辑删除功能
2017/10/25 Javascript
vue如何引入sass全局变量
2018/06/28 Javascript
深入学习Vue nextTick的用法及原理
2019/10/08 Javascript
typescript配置alias的详细步骤
2020/08/12 Javascript
python 打印对象的所有属性值的方法
2016/09/11 Python
Python内置函数OCT详解
2016/11/09 Python
Python面向对象class类属性及子类用法分析
2018/02/02 Python
Python实现使用卷积提取图片轮廓功能示例
2018/05/12 Python
HTML5拖拽文件到浏览器并实现文件上传下载功能代码
2013/06/06 HTML / CSS
DC Shoes俄罗斯官网:美国滑板鞋和服饰品牌
2020/08/19 全球购物
花卉与景观设计系大学生求职信
2013/10/01 职场文书
教学实验楼管理制度
2014/02/01 职场文书
应聘教师自荐书
2014/06/16 职场文书
食品安全汇报材料
2014/08/18 职场文书
践行三严三实心得体会
2014/10/13 职场文书
欠条样本
2015/07/03 职场文书
2016年乡镇综治宣传月活动总结
2016/03/16 职场文书
学生会2016感恩节活动小结
2016/04/01 职场文书
分析mysql中一条SQL查询语句是如何执行的
2021/06/21 MySQL
Python制作动态字符画的源码
2021/08/04 Python