jquery双击事件会触发单击事件
实际工作中,我们经常会遇到在同一个元素上,绑定多种事件类型,比较常见的是单击事件和一些鼠标事件,一般而言影响不大。但是如果同时绑定单击事件和双击事件呢?
其实,只要能够想明白的话,解决方案也比较简单,我们想象一下单击事件执行过程:mousedown, mouseup, click。双击事件的执行过程呢?mousedown, mouseup, click; mousedown, mouseup, click。仔细看,其实双击事件就是执行了两次单击事件,那这种情况下,怎么才能避免触发单击事件呢?
奥秘就在于延迟定时器setTimeout,单击事件延迟执行,如果检测到连续点击的话,就认为是双击事件,不在执行单击事件。
// 单击事件
var timer = null;
$('.mask-body').on('click', '.leaver-student', function () { // 点击输入框展开下拉列表
clearTimeout(timer);
timer = setTimeout(function () {
// 这里采用执行自定义事件的方式
$('.leaver-student').trigger('slide');
}, 300); // 延迟300ms执行单击事件
});
// 双击输入框时可以输入学生姓名 双击事件
$('.mask-body').on('dblclick', '.leaver-student', function (ev) {
ev.stopPropagation();
clearTimeout(timer);
$('.leavers li').trigger('click');
$(this).removeAttr('readonly').val('').focus();
});
由此扩展出去,在触摸屏上触发滑动事件时,为什么没有触发单击事件呢?
事实上采用的是相同的方式,在点击事件时,延迟执行,以便设备确认这次操作究竟是不是真正的点击事件。
jquery双击事件会触发单击事件的更多相关文章
- jQuery 双击事件(dblclick)时,不触发单击事件(click)
我这是转载的文字 原文地址:http://www.cnblogs.com/wyblog/archive/2011/12/15/2289219.html 万恶的双击事件啊!! 在jQuery的事件绑定中 ...
- [转]jQuery 双击事件(dblclick)时,不触发单击事件(click)
例1: 链接:http://www.w3school.com.cn/jquery/event_dblclick.asp HTML 系列教程 浏览器脚本 服务器脚本 ASP.NET 教程 XML 系列教 ...
- JQuery如何实现双击事件时不触发单击事件,解决鼠标单双击冲突问题
在jQuery的事件绑定中,如果元素同时绑定了单击事件(click)和双击事件(dblclick),那么执行单击事件(click)时,不会触发双击事件(dblclick), 执行双击事件(dblcli ...
- JQuery如何实现双击事件时不触发单击事件
单击和双击事件的执行顺序: 单击(click):mousedown,mouseout,click: 双击(dblclick):mousedown,mouseout,click , mousedown, ...
- jquery动态添加元素无法触发绑定事件的解决方案。
jquery动态添加元素无法触发绑定的事件的解决方案. ╭(●`∀´●)╯二狗最近在工作中遇到一个问题,即当用jquery动态添加元素后,发现给动态添加的元素却无法触发事件(╯#-_-)╯╧═╧ ( ...
- jquery 赋值时不触发change事件解决
$("#optionsId").change(function(){ $("#selectOptionsText").val('测试'); }); $(&quo ...
- js文本框失去焦点事件与按钮单击事件的冲突问题
<input type="text" id="txt" name="txt"/> <input type="bu ...
- ztree根据treeId展开指定节点并触发单击事件
ztree.expandNode(ztree.getNodeByParam("id",treeId,null));//展开指定节点 ztree.selectNode(ztree.g ...
- Vue自定义事件:触发自定义事件
一 项目结构 二 子组件(Mongo.vue) <template> <button @click="eat">按钮</button> < ...
随机推荐
- dashboard无法查到endpoint, counter
问题 使用Open-falcon时,Agent 推送metrics后,无法在Dashboard上显示.将Agent的hostname 修改后,却可以. 解决办法 查看Agent log,推送到tran ...
- S域传递函数的零点和极点
传递函数的极点就是对应微分方程的特征根(回忆一下,$\frac{1}{s+a}$是$e^{-a t}$的Laplace变换),因此它们决定了系统自由运动的模态. 传递函数的零点不直接形成自由运动的模态 ...
- jQuery控制元素显示、隐藏、切换、滑动的方法
jQuery 隐藏和显示 通过 hide() 和 show() 两个函数,jQuery 支持对 HTML 元素的隐藏和显示: 实例 $("#hide").click(functio ...
- 珍藏的数据库SQL基础练习题答案
自己珍藏的数据库SQL基础练习题答案 一,基本表的定义与删除. 题1: 用SQL语句创建如下三张表:学生(Student),课程表(Course),和学生选课表(SC),这三张表的结构如表1-1到表1 ...
- [转][CEF]自动播放视频
1.CEF 默认不支持 mp4,可以在网上下载热心网友提供的修改版. 查看支持的特性的方法:在 CEF 中访问网页 :http://html5test.com/ 2. 打开网页后视频自动播放: mut ...
- 解决Kubernetes 1.7.3 kube-apiserver频繁异常重启的问题(转)
原文的帖子无法访问,我只能粘贴内容 近期将之前的一个用Kubernetes 1.3.7的环境更换为最新发布的用kubeadm安装的Kubernetes 1.6.4 Dashboard无法访问的问题&g ...
- java中友元的完美实现(转载)
http://blog.sina.com.cn/s/blog_ce5b9f7e0102vhiv.html C++中有一个友元机制,可以给予一个类访问另一个类中私有成员的权限. 这个机制有时候是很有 ...
- Oracle EXP-00091解决方法
非交互式 windows: D:\>exp scott/tiger file=employee.dmp tables=(emp,dept) linux需要加双引号 EXP-00091: [ora ...
- android 根据滑动隐藏或显示导航 类似手机QQ好友个人信息
//重写ScrollView public class NotifyingScrollView extends ScrollView { /** * @author Cyril Mottier */ ...
- JAVA Map 和 List 排序方法
private Map<String,String> mapDate; //正序 mapDate=new TreeMap<String, String>(new Compara ...