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 相关文章推荐
基于jquery用于查询操作的实现代码
May 10 Javascript
可以用来调试JavaScript错误的解决方案
Aug 07 Javascript
javaScript复制功能调用实现方案
Dec 13 Javascript
jquery事件preventDefault()方法用法实例
Jan 16 Javascript
基于jQuery仿淘宝产品图片放大镜代码分享
Jun 23 Javascript
JavaScript中点击事件的写法
Jun 28 Javascript
js中遍历Map对象的简单实例
Aug 08 Javascript
input type=file 选择图片并且实现预览效果的实例
Oct 26 Javascript
JS一次前端面试经历记录
Mar 19 Javascript
微信小程序scroll-view实现滚动到锚点左侧导航栏点餐功能(点击种类,滚动到锚点)
Jun 11 Javascript
使用Vant完成通知栏Notify的提示操作
Nov 11 Javascript
正则表达式基础与常用验证表达式
Jun 16 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
刚才在简化php的库,结果发现很多东西
2006/12/31 PHP
坏狼的PHP学习教程之第2天
2008/06/15 PHP
google地图的路线实现代码
2009/08/20 Javascript
Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
JavaScript前补零操作实例
2015/03/11 Javascript
javascript实现方法调用与方法触发小结
2016/03/26 Javascript
前端面试题及答案整理(二)
2016/08/26 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
详解Nodejs基于mongoose模块的增删改查的操作
2016/12/21 NodeJs
JavaScript实现数组降维详解
2017/01/05 Javascript
JavaScript反弹动画效果的实现代码
2017/07/13 Javascript
详解js静态资源文件请求的处理
2017/08/01 Javascript
jquery animate动画持续运动的实例
2017/11/29 jQuery
用vue快速开发app的脚手架工具
2018/06/11 Javascript
JavaScript常见鼠标事件与用法分析
2019/01/03 Javascript
详解js 创建对象的几种方法
2019/03/08 Javascript
详解 微信小程序开发框架(MINA)
2019/05/17 Javascript
jQuery实现简易QQ聊天框
2020/02/10 jQuery
OpenLayers3加载常用控件使用方法详解
2020/09/25 Javascript
在Vue中使用mockjs代码实例
2020/11/25 Vue.js
Windows8下安装Python的BeautifulSoup
2015/01/22 Python
Python爬虫之网页图片抓取的方法
2018/07/16 Python
Python的argparse库使用详解
2018/10/09 Python
Python二叉树的镜像转换实现方法示例
2019/03/06 Python
使用Django简单编写一个XSS平台的方法步骤
2019/03/25 Python
详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法
2019/07/06 Python
Python 的AES加密与解密实现
2019/07/09 Python
Python对象的属性访问过程详解
2020/03/05 Python
整个世界的设计师家具在哈恩:Designathome
2019/03/25 全球购物
小学教师暑期培训方案
2014/08/28 职场文书
员工激励培训演讲稿
2014/09/16 职场文书
检查机关党的群众路线个人整改措施
2014/10/04 职场文书
简历自我评价优缺点
2015/03/11 职场文书
2016入党积极分子考察评语
2015/12/01 职场文书
严以用权学习心得体会
2016/01/12 职场文书
使用Postman测试需要授权的接口问题
2022/06/21 Java/Android