单击和双击事件的冲突处理示例代码


Posted in Javascript onApril 03, 2014

先上代码:

<head> 
<title></title> 
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script> 
<script type="text/javascript" language="javascript"> 
$(function () { 
$("div").bind("click.a", function () { //单击事件 
$("body").append("<p>click事件</p>"); 
}) 
$("div").bind("dblclick.a", function () { //双击事件 
$("body").append("<p>dblclick事件</p>"); 
}) 
$("div").bind("mouseover.a", function () { //鼠标经过元素的事件 
$("body").append("<p>mouseover事件</p>"); 
}) 
$("div").bind("mouseout.a", function () { //鼠标移出元素的事件 
$("body").append("<p>mouseout事件</p>"); 
}) 
}) 
</script> 
</head> 
<body> 
<div>jQuery命名空间</div> 
</body>

效果如图所示,我双击的同时,会先触发两个单击事件,这是怎么回事?还有,如果我不想在双击的时候触发

单击事件,而仅仅只是触发双击事件,那该怎么解决?我也有试过在双击的时候,先把单击事件解绑,

可这样一来,单击事件又不能用了。。。

单击和双击事件的冲突处理示例代码 

后来在论坛问别人,终于有了答案。那就是使用setTimeout()这个方法设置单击事件的时间间隔,这个时间间隔一般
设为300ms,这样在双击的时候,由于双击的时间间隔小于300ms,所以就不会产生click事件,而仅仅只是产生
dblclick事件。在双击事件里面,需要用clearTimeout()函数清除click事件的处理。代码如下:

<script type="text/javascript" language="javascript"> 
$(function () { 
var timer = null; 
$("div").bind("click.a", function () { //单击事件 
clearTimeout(timer); 
timer = setTimeout(function () { //在单击事件中添加一个setTimeout()函数,设置单击事件触发的时间间隔 
$("body").append("<p>click事件</p>"); 
}, 300); }) 
$("div").bind("dblclick.a", function () { //双击事件 
clearTimeout(timer); //在双击事件中,先清除前面click事件的时间处理 
$("body").append("<p>dblclick事件</p>"); 
}) 
$("div").bind("mouseover.a", function () { //鼠标经过元素的事件 
$("body").append("<p>mouseover事件</p>"); 
}) 
$("div").bind("mouseout.a", function () { //鼠标移出元素的事件 
$("body").append("<p>mouseout事件</p>"); 
}) 
}) 
</script>

如此,这个问题就解决了!
Javascript 相关文章推荐
JS 创建对象(常见的几种方法)
Nov 03 Javascript
利用WebBrowser彻底解决Web打印问题(包括后台打印)
Jun 22 Javascript
jQuery 使用手册(二)
Sep 23 Javascript
jquery选择器(常用选择器说明)
Sep 28 Javascript
iframe的onload在Chrome/Opera中执行两次Bug的解决方法
Mar 17 Javascript
FireFox下XML对象转化成字符串的解决方法
Dec 09 Javascript
JQuery中serialize()、serializeArray()和param()方法示例介绍
Jul 31 Javascript
有效提高JavaScript执行效率的几点知识
Jan 31 Javascript
JavaScript截断字符串的方法
Jul 15 Javascript
seajs模块压缩问题与解决方法实例分析
Oct 10 Javascript
vue-cli V3.0版本的使用详解
Oct 24 Javascript
ES5 模拟 ES6 的 Symbol 实现私有成员功能示例
May 06 Javascript
在jquery boxy中添加百度地图坐标拾取注意流程
Apr 03 #Javascript
邮箱下拉自动填充选择示例代码附图
Apr 03 #Javascript
JS获取网页属性包括宽、高等等
Apr 03 #Javascript
jQuery的$.proxy()应用示例介绍
Apr 03 #Javascript
js实现的复制兼容chrome和IE
Apr 03 #Javascript
JS实现局部选择打印和局部不选择打印
Apr 03 #Javascript
javascript实现页面内关键词高亮显示代码
Apr 03 #Javascript
You might like
PHP4.04简明安装
2006/10/09 PHP
Windows下利用Gvim写PHP产生中文乱码问题解决方法
2011/04/20 PHP
php创建基本身份认证站点的方法详解
2013/06/08 PHP
Php header()函数语法及使用代码
2013/11/04 PHP
PHP文件锁定写入实例解析
2014/07/14 PHP
简述php环境搭建与配置
2016/12/05 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
基于Jquery的文字滚动跑马灯插件(一个页面多个滚动区)
2010/07/26 Javascript
jquery里的each使用方法详解
2010/12/22 Javascript
jquery对单选框,多选框,文本框等常见操作小结
2014/01/08 Javascript
setinterval()与clearInterval()JS函数的调用方法
2015/01/21 Javascript
JavaScript实现字符串与日期的互相转换及日期的格式化
2016/03/07 Javascript
老生常谈onBlur事件与onfocus事件(js)
2016/07/09 Javascript
图解prototype、proto和constructor的三角关系
2016/07/31 Javascript
浅谈webpack打包生成的bundle.js文件过大的问题
2018/02/22 Javascript
vue2.* element tabs tab-pane 动态加载组件操作
2020/07/19 Javascript
JS绘图Flot如何实现可选显示曲线图功能
2020/10/16 Javascript
打开电脑上的QQ的python代码
2013/02/10 Python
详解Python的Django框架中inclusion_tag的使用
2015/07/21 Python
浅析Python 中整型对象存储的位置
2016/05/16 Python
Python算术运算符实例详解
2017/05/31 Python
Django Admin 实现外键过滤的方法
2017/09/29 Python
Python使用arrow库优雅地处理时间数据详解
2017/10/10 Python
Python pandas常用函数详解
2018/02/07 Python
Python下调用Linux的Shell命令的方法
2018/06/12 Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
2018/11/18 Python
Python实现分段线性插值
2018/12/17 Python
python将一个英文语句以单词为单位逆序排放的方法
2018/12/20 Python
python中matplotlib实现随鼠标滑动自动标注代码
2020/04/23 Python
在 Python 中使用 MQTT的方法
2020/08/18 Python
伦敦眼门票在线预订:London Eye
2018/05/31 全球购物
德国高尔夫商店:Par71.de
2020/11/29 全球购物
煤矿安全生产月活动总结
2014/07/05 职场文书
2014年民主评议党员个人总结
2014/09/24 职场文书
golang gopm get -g -v 无法获取第三方库的解决方案
2021/05/05 Golang
浅谈mysql哪些情况会导致索引失效
2021/11/20 MySQL