• 【转】jQuery


    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过。如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/mao2080/

    1、问题描述

    最近在做H5视频播放器,有这样的需求:点击视频播放界面可以:暂停/播放,双击视频可以:全屏/退出全屏,但是同时绑定click和Dblclick会有冲突,双击的时候每次都会执行两次click,一次Dblclick这明显不符合要求,于是在网上查找解决办法。

    2、解决思路

    添加事件的代码比较简单,有两种方法:

    • $("abc").bind({"click":fn,"dblclick":fn});
    • $("abc").click(fn).dblclick(fn)

    目前的问题是无论双击或者单击都只执行单击的function,为什么呢?
    下面我们说一下双击的机制:

    双击(dblclick)的流程是:mousedown,mouseout,click,mousedown,mouseout,click,dblclick;

    要想实现双击我们必须屏蔽这两次click,因此我们在click里面设置一个定时器,延迟执行function。

    3、代码样例

     1 var _time = null;
     2 $(this).find("tr").dblclick(function(e){
     3     clearTimeout(_time);
     4     console.log("dblclick");
     5     //真正双击代码
     6 
     7 }).click(function(e){
     8     clearTimeout(_time);
     9     _time = setTimeout(function(){
    10         console.log("click");
    11         //单击事件在这里
    12 
    13     }, 300);
    14 });

    4、参考网站

  • 相关阅读:
    连接池的配置与维护
    对面向对象的理解
    ActiveMQ重试机制
    activemq持久化的几种方式详解
    zookeeper写数据流程
    G1垃圾回收器
    REDIS哨兵模式和集群模式
    REDIS复制
    REDIS参数配置和运行状态
    slow-log 和bin-log相关参数介绍
  • 原文地址:https://www.cnblogs.com/mao2080/p/7518839.html
Copyright © 2020-2023  润新知