Javascript和jquery事件--双击事件
在js中和jq中对应的命名都为dblclick,ondblclick,但是ondblclick和dom元素的属性相似,可以在行内设置,也可以使用attr设置。
同时,双击事件需要关注一个问题,那就是双击引起的两次单击问题。鼠标事件,双击和单击发生在如下条件下:
单击:mousedown, mouseup, click
双击:mousedown, mouseup, click, mousedown, mouseup, click, dblclick
可以看到,每触发一次双击事件,就会触发两次单击事件。无论在js还是在jq中,都没有对这个情况做出处理,如果有需要的话,只能你自己解决了,那就是设置延时。
var timer=null;
function clickfunction(){
clearTimeout(timer);
timer=setTimeout(function(){//初始化一个延时
console.log("1");
},250);
}
function dbclickfunction(){
clearTimeout(timer);//发生双击了就阻止单击引发的操作
console.log("2");
}
//js方法
var btn1 = document.getElementById('button1');
btn1.addEventListener('click',clickfunction);
btn1.addEventListener('dblclick',dbclickfunction);
//jq方法
$('#button2').on('click',clickfunction);
$('#button2').on('dblclick',dbclickfunction);
对于双击事件的判定中,js给双击预留的时间比jq多一些,在js中如果点击慢一点还是会出现一个单击加一个双击的情况,可以给单击延时久一点,但是这样设置的话,会使得单击事件没有那么灵活,而且如果单击还绑定其他监听器甚至涉及父元素的冒泡事件,情况会更加复杂,尽量避免这样给一个元素同时设置单击和双击事件的情况,同样你也可以自己用单击事件和时间戳设置双击事件。
http://www.w3school.com.cn/jsref/event_ondblclick.asp
https://blog.csdn.net/qq_30868289/article/details/79484322
Javascript和jquery事件--双击事件的更多相关文章
- JavaScript和JQuery中的事件\委托链\事件冒泡\事件捕获,兼容所有浏览器
有做过北大青鸟培训讲师经验的我,如今在一家公司做技术部经理的职位,发现有很多程序员的基本功相当糟糕,在组织企业内部培训时讲解了一些案例,总结了一些经典代码,希望对自己和有需要的人提供一些帮助吧: Ja ...
- javascript和jquery 移除事件 和 改变样式
javascript移除事件: document.getElementById("word").onmouseover = null; javascript改变样式: docume ...
- javascript和jquery 获取触发事件的元素
一个很简单的问题,却因为大意,经常忘了处理,导致程序运行出错. <!DOCTYPE html> <html> <head> <meta charset=&qu ...
- javascript模拟jQuery封装委托事件,兼容IE
var $ = function(id){ var dom = document.getElementById(id); return { on:function(eventType,element, ...
- jquery双击事件
<html> <head><meta http-equiv="Content-Type" content="text/html; chars ...
- 【Python全栈-JavaScript】jQuery事件
jQuery事件 一.页面载入 当DOM载入就绪可以查询及操纵时绑定一个要执行的函数. 这是事件模块中最重要的一个函数,因为它可以极大地提高web应用程序的响应速度. 简单地说,这个方法纯粹是对向 w ...
- javascript双击事件取消默认的两次单击事件
当一个元素同时具有单击和双击事件时,双击时会触发2次单击和1此双击事件. 双击会:先第1次单击 ,同时触发第2次和双击事件. 造成的不好影响:每次单击事件会延迟执行. <!DOCTYPE htm ...
- jQuery 的ready事件和 JavaScript 的load事件对比
为了理解2个事件的异同,先了解一下HTML文档加载顺序 HTML DOM文档加载步骤 HTML DOM文档加载是按顺序执行的,这与浏览器的渲染方式有关,一般浏览器渲染操作的顺序大致按如下几个步骤 1, ...
- jQuery 双击事件(dblclick)时,不触发单击事件(click)
我这是转载的文字 原文地址:http://www.cnblogs.com/wyblog/archive/2011/12/15/2289219.html 万恶的双击事件啊!! 在jQuery的事件绑定中 ...
随机推荐
- Tomcat线程池与NIO配置
每个web客户端请求对于服务器端来说就一个单独的线程,客户端的请求数量增多将会导致线程数就上去了,CPU就忙着跟线程切换. 而NIO则是使用单线程(单个CPU)或者只使用少量的多线程(多CPU)来接受 ...
- BRep Shapes Based on Tessellated Geometry
BRep Shapes Based on Tessellated Geometry eryar@163.com Key Words. BRep Shape, Tessellated Geometry, ...
- Python Web框架Tornado的异步处理代码演示样例
1. What is Tornado Tornado是一个轻量级但高性能的Python web框架,与还有一个流行的Python web框架Django相比.tornado不提供操作数据库的ORM接口 ...
- VS 格式化代码 Ctrl + K, Ctrl + F
- 120.VS调试技巧
设置断点调试 在一行代码的左侧点击即可设置断点,按F5(调试->开始调试)即可运行到第一个端点处暂停 逐语句调试 按F11(调试->逐语句)即可开始一步一步执行 逐过程调试 按F10(调试 ...
- 带你底层看Sqoop如何转换成MapReduce作业运行的(代码程序)
补充 其实啊,我们知道,sqoop在运行的时候,最终会去转换成mapreduce作业,这个很简单,不多赘述.直接贴出来. 具体这些怎么运行的,见我如下这篇博客.这里只做一个引子. Sqoop Impo ...
- Mysql数据库调优和性能优化
1. 简介 在Web应用程序体系架构中,数据持久层(通常是一个关系数据库)是关键的核心部分,它对系统的性能有非常重要的影响.MySQL是目前使用最多的开源数据库,但是mysql数据库的默认设置性能非常 ...
- 03010_防止SQL注入
1.预处理对象 (1)使用PreparedStatement预处理对象时,建议每条sql语句所有的实际参数,都使用逗号分隔: String sql = "insert into sort(s ...
- IntelliJ IDEA如何导入maven结构的web工程
第一步:打开一个现有(也可以不打开,直接用import选择Maven类型)的IntelliJ IDEA工程,点击菜单的"File"->"new"-> ...
- js--27门面模式
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...