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中获取样式的原生方法小结
Oct 08 Javascript
AngularJS iframe跨域打开内容时报错误的解决办法
Jan 26 Javascript
js实现同一页面多个不同运动效果的方法
Apr 10 Javascript
JS实现来回出现文字的状态栏特效代码
Oct 31 Javascript
JavaScript实现简洁的俄罗斯方块完整实例
Mar 01 Javascript
聊一聊Vue.js过渡效果
Sep 07 Javascript
javascript宿主对象之window.navigator详解
Sep 07 Javascript
使用smartupload组件实现jsp+jdbc上传下载文件实例解析
Jan 05 Javascript
微信、QQ、微博、Safari中使用js唤起App
Jan 24 Javascript
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
Mar 12 Javascript
Node 使用express-http-proxy 做api网关的实现
Oct 15 Javascript
吃通javascript正则表达式
Apr 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+JS+rsa数据加密传输实现代码
2011/03/23 PHP
PHP生成数组再传给js的方法
2014/08/07 PHP
[原创]CI(CodeIgniter)简单统计访问人数实现方法
2016/01/19 PHP
php+mysql+ajax实现单表多字段多关键词查询的方法
2017/04/15 PHP
Symfony2针对输入时间进行查询的方法分析
2017/06/28 PHP
laravel获取不到session的三种解决办法【推荐】
2018/09/16 PHP
JSONP 跨域共享信息
2012/08/16 Javascript
JS实现一键回顶功能示例代码
2013/10/28 Javascript
js Object2String方便查看js对象内容
2014/11/24 Javascript
jQuery+Ajax实现无刷新分页
2015/10/30 Javascript
Javascript技术栈中的四种依赖注入详解
2016/02/23 Javascript
jquery ezUI 双击行记录弹窗查看明细的实现方法
2016/06/01 Javascript
jquery中用jsonp实现搜索框功能
2016/10/18 Javascript
javascript中mouseenter与mouseover的异同
2017/06/06 Javascript
vue+webpack中配置ESLint
2018/11/07 Javascript
解决前后端分离 vue+springboot 跨域 session+cookie失效问题
2019/05/13 Javascript
Vuex的实战使用详解
2019/10/31 Javascript
Angular5整合富文本编辑器TinyMCE的方法(汉化+上传)
2020/05/26 Javascript
[38:54]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第一场 11.28
2020/12/01 DOTA
在Python的gevent框架下执行异步的Solr查询的教程
2015/04/16 Python
python连接字符串的方法小结
2015/07/13 Python
Python实现堡垒机模式下远程命令执行操作示例
2019/05/09 Python
python中使用while循环的实例
2019/08/05 Python
Python + selenium + crontab实现每日定时自动打卡功能
2020/03/31 Python
python中子类与父类的关系基础知识点
2021/02/02 Python
贝玲妃美国官方网站:Benefit美国
2016/08/28 全球购物
英国马莎百货印度官网:Marks & Spencer印度
2020/10/08 全球购物
构造方法和其他方法的区别?怎么调用父类的构造方法
2013/09/22 面试题
竞争性谈判邀请书
2014/02/06 职场文书
2015最新学生自我评价范文
2015/03/03 职场文书
2015年幼儿园个人工作总结
2015/04/25 职场文书
中秋节晚会开场白
2015/05/29 职场文书
2016年社会主义核心价值观心得体会
2016/01/21 职场文书
2016党风廉政建设心得体会范文
2016/01/25 职场文书
如何写好闭幕词
2019/04/02 职场文书
C3 线性化算法与 MRO之Python中的多继承
2021/10/05 Python