jQuery防止click双击多次提交及传递动态函数或多参数


Posted in Javascript onApril 02, 2014

今天是写的是关于JQ的双击事件防止多次提交的问题,并且通过函数可以批量定义,通能性更强了,通过方法动态绑定元素的事件。而且可以动态传递函数名或者多参数等(本实例只传递函数名通过Eval调用)。

我们都知道在jQuery的事件绑定中,执行双击事件(dblclick)时能触发两次单击事件(click)。即一个标签元素(如div等),如果元素同时绑定了单击事件(click)和双击事件(dblclick),那么执行单击事件(click)时,不会触发双击事件(dblclick), 执行双击事件(dblclick)时却会触发两次单击事件(click)。

先看一下点击事件的执行顺序:

单击(click):mousedown,mouseout,click;
双击(dblclick):mousedown,mouseout,click , mousedown,mouseout,click,dblclick;

在双击事件(dblclick),触发的两次单击事件(click)中,第一次的单击事件(click)会被屏蔽掉,但第二次不会。也就是说双击事件(dblclick)会返回一次单击事件(click)结果和一次双击事件(dblclick) 结果。而不是一次双击事件(dblclick)结果和两次单击事件结果(click)。

如此这般的话,只需消灭掉多余的一次单击事件(click),这个问题就解决了。

效果如下图:
http://images.cnitblog.com/i/554071/201404/010846579687197.png
源代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>jQuery防止click双击多次执行及传递动态函数方法</title> 
<script type="text/javascript" src="http://www.86y.org/js/jquery.min.js"></script> 
</head> <body> 
<div id="show">显示测试结果:</div> 
<div style="background:#f60;color:#fff;width:80px;padding:10px 20px;" id="div" onclick="ss1('DIV事件')">点击我吧</div> 
<input type="button" value="按钮一" id="but1" onclick="ss2('INPUT事件')"/> 
<script language="javascript"> 
function std (obj,vs){ 
var TimeFn = null; 
var funs=$(obj).attr("onclick"); 
$(obj).click(function() { 
clearTimeout(TimeFn); 
TimeFn = setTimeout(function(){ 
eval(funs); 
clearTimeout(TimeFn); 
}, 400); 
}); 
$(obj).dblclick(function() { 
clearTimeout(TimeFn); 
}); 
$(obj).removeAttr("onclick"); 
} 
var ss1=function(s){$("#show").html("DIV显示测试结果:"+s);alert("a");};//div调用的方法 
var ss2=function(s){$("#show").html("INPUT显示测试结果:"+s);alert("b");};//input调用的方法 
//通过方法动态绑定元素的事件 
std("#div","div"); 
std("#but1","button1"); 
</script> 
</body> 
</html>
Javascript 相关文章推荐
点图片上一页下一页翻页效果
Jul 09 Javascript
浅谈关于JavaScript的语言特性分析
Apr 11 Javascript
JavaScript中获取鼠标位置相关属性总结
Oct 11 Javascript
jquery单选框radio绑定click事件实现方法
Jan 14 Javascript
jquery实现鼠标滑过显示提示框的方法
Feb 05 Javascript
深入理解JavaScript系列(36):设计模式之中介者模式详解
Mar 04 Javascript
vue组件Prop传递数据的实现示例
Aug 17 Javascript
JS实现评价的星星功能
Aug 20 Javascript
webpack4 SCSS提取和懒加载的示例
Sep 03 Javascript
详解js location.href和window.open的几种用法和区别
Dec 02 Javascript
JS面向对象实现飞机大战
Aug 26 Javascript
js前端设计模式优化50%表单校验代码示例
Jun 21 Javascript
jquery跟js初始化加载的多种方法及区别介绍
Apr 02 #Javascript
jquery中子元素和后代元素的区别示例介绍
Apr 02 #Javascript
js 日期比较相关天数代码
Apr 02 #Javascript
你未必知道的JavaScript和CSS交互的5种方法
Apr 02 #Javascript
网页广告中JS代码的信息监听示例
Apr 02 #Javascript
使用jquery中height()方法获取各种高度大全
Apr 02 #Javascript
jquery 判断滚动条到达了底部和顶端的方法
Apr 02 #Javascript
You might like
咖啡与水的关系
2021/03/03 冲泡冲煮
php处理抢购类功能的高并发请求
2018/02/08 PHP
PHP基于phpqrcode类生成二维码的方法详解
2018/03/14 PHP
yii2 url重写并隐藏index.php方法
2018/12/10 PHP
prototype.js的Ajax对象
2006/09/23 Javascript
用CSS+JS实现的进度条效果效果
2007/06/05 Javascript
jquery中常用的SET和GET
2009/01/13 Javascript
js实现兼容IE6与IE7的DIV高度
2010/05/13 Javascript
jQuery的实现原理的模拟代码 -2 数据部分
2010/08/01 Javascript
jquery在Chrome下获取图片的长宽问题解决
2013/03/20 Javascript
html中使用javascript调用本地程序(exe、doc等)实现代码
2013/04/26 Javascript
Js获取数组最大和最小值示例代码
2013/10/29 Javascript
Jquery操作radio的简单实例
2014/01/06 Javascript
javascript将浮点数转换成整数的三个方法
2014/06/23 Javascript
Javascript中设置默认参数值示例
2014/09/11 Javascript
javascript关于继承的用法汇总
2014/12/20 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
2015/06/26 Javascript
AngularJS 基础ng-class-even指令用法
2016/08/01 Javascript
AngularJS的ng Http Request与response格式转换方法
2016/11/07 Javascript
浅谈React深度编程之受控组件与非受控组件
2017/12/26 Javascript
基于vue.js实现分页查询功能
2018/12/29 Javascript
python获取指定网页上所有超链接的方法
2015/04/04 Python
python函数的作用域及关键字详解
2019/08/20 Python
flask/django 动态查询表结构相同表名不同数据的Model实现方法
2019/08/29 Python
python lambda表达式(匿名函数)写法解析
2019/09/16 Python
Python django框架开发发布会签到系统(web开发)
2020/02/12 Python
巴西最大的体育用品商城:Netshoes巴西
2016/11/29 全球购物
电子商务专业学生的学习自我评价
2013/10/27 职场文书
学院书画协会部门职责
2013/11/28 职场文书
初中毕业典礼演讲稿
2014/09/09 职场文书
法制演讲稿
2014/09/10 职场文书
运动会报道稿300字
2014/10/02 职场文书
党员反对四风思想汇报范文
2014/10/25 职场文书
幼师个人总结范文
2015/02/28 职场文书
消防演习感想
2015/08/10 职场文书
清空 Oracle 安装记录并重新安装
2022/04/26 Oracle