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 相关文章推荐
checkbox设置复选框的只读效果不让用户勾选
Aug 12 Javascript
js data日期初始化的5种方法
Dec 29 Javascript
jquery选择器使用详解
Apr 08 Javascript
JS实现距离上次刷新已过多少秒示例
May 23 Javascript
Javascript学习笔记之 对象篇(三) : hasOwnProperty
Jun 24 Javascript
Javascript表单验证要注意的事项
Sep 29 Javascript
AngularJS模块管理问题的非常规处理方法
Apr 29 Javascript
Ext JS动态加载JavaScript创建窗体的方法
Jun 23 Javascript
扩展Bootstrap Tooltip插件使其可交互的方法
Nov 07 Javascript
jQuery中常用动画效果函数知识点整理
Aug 19 jQuery
微信小程序云开发之模拟后台增删改查
May 16 Javascript
vue组件入门知识全梳理
Sep 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 fwrite写入txt文件的时候用 \r\n不能换行的问题
2013/08/06 PHP
php数组使用规则分析
2015/02/27 PHP
php使用cookie实现记住登录状态
2015/04/27 PHP
php7新特性的理解和比较总结
2019/04/14 PHP
jQuery 使用手册(三)
2009/09/23 Javascript
判断目标是否是window,document,和拥有tagName的Element的代码
2010/05/31 Javascript
javascript学习笔记(十四) window对象使用介绍
2012/06/20 Javascript
javascript 数组排序函数sort和reverse使用介绍
2013/11/21 Javascript
一个简单的实现下拉框多选的插件可移植性比较好
2014/05/05 Javascript
iframe里的页面禁止右键事件的方法
2014/06/10 Javascript
jQuery遍历json中多个map的方法
2015/02/12 Javascript
微信小程序 Flex布局详解
2016/10/09 Javascript
使用veloticy-ui生成文字动画效果
2018/02/08 Javascript
Vue实现一个图片懒加载插件
2019/03/11 Javascript
vue动态渲染svg、添加点击事件的实现
2020/03/13 Javascript
[01:31](回顾)杀出重围,决战TI之巅
2014/07/01 DOTA
[00:36]DOTA2勇士令状莱恩声望物品——冥晶之厄展示
2018/05/25 DOTA
Python函数学习笔记
2008/10/07 Python
Python解惑之True和False详解
2017/04/24 Python
python负载均衡的简单实现方法
2018/02/04 Python
python3利用Dlib19.7实现人脸68个特征点标定
2018/02/26 Python
Python实现线程状态监测简单示例
2018/03/28 Python
Python读取excel中的图片完美解决方法
2018/07/27 Python
python 多线程将大文件分开下载后在合并的实例
2018/11/09 Python
python实现logistic分类算法代码
2020/02/28 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
2020/04/30 Python
详解matplotlib绘图样式(style)初探
2021/02/03 Python
pycharm 的Structure界面设置操作
2021/02/05 Python
解决HTML5中的audio在手机端和微信端的不能自动播放问题
2019/11/04 HTML / CSS
Mountain Warehouse澳大利亚官网:欧洲家庭户外品牌倡导者
2016/11/20 全球购物
香港卓悦化妆品官网:BONJOUR
2017/09/21 全球购物
几个常见的消息中间件(MOM)
2014/01/08 面试题
家长对老师的评语
2014/04/18 职场文书
高中竞选班长演讲稿
2014/04/24 职场文书
中华美德颂演讲稿
2014/05/20 职场文书
巴西世界杯32强口号
2014/06/05 职场文书