今天是写的是关于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>
相关推荐:
innerhtml用法 innertext用法 以及innerHTML与innertext的区别
一个可以兼容IE FF的加为首页与加入收藏实现代码
提高IIS网站服务器效率的8个方法
python 快速排序代码
Js 打字效果 逐一出现的文字
MSSQL汉字转拼音函数实现语句
Ajax Control Toolkit 34个服务器端控件第1/2页
VBS操作Excel常见方法
XHTML下,JS浮动代码失效的问题
单选按钮决定链接的网址
火车采集器 免费版使出收费版本功能实现原理
jquery ajax 检测用户注册时用户名是否存在
ASP.NET Cookie 操作实现
Jquery 设置标题的自动翻转
一个JS小玩意 几个属性相加不能超过一个特定值.
服务器升级显优势 掀起企业选购热潮
jquery (show,fadeOut,Animate)简单效果
js 操作table之 移动TR位置 兼容FF 跟 IE
Flex3 界面布局教程
域名行业再起波澜 COM降价引发代理狂潮
中文域名获国际通行证 投资价值突飞猛进
jquery控制listbox中项的移动并排序
MSSQL2005 INSERT,UPDATE,DELETE 之OUTPUT子句使用实例
关于页面优化和伪静态
最近脚本之家网站无法访问的公告20090923
javascript Math.random()随机数函数
javascript 弹出层居中效果的制作
SQLSERVER 中datetime 和 smalldatetime类型分析说明
serv_U 域离线 解决方法
ASP.NET Web应用程序的安全解决方案浅析
JavaScript实现网页截屏的5种方法小结
drop,truncate与delete的区别
解决jquery .ajax 在IE下卡死问题的解决方法
MySQL 错误处理例子[译]
javascript 图片放大效果函数
javascript实现拖拽并替换网页块元素
JavaScript Sort 表格排序
Cython 三分钟入门教程
Mootools 1.2教程 正则表达式
extjs 学习笔记(一) 一些基础知识
JS OOP包机制,类创建的方法定义
JQuery困惑—包装集 DOM节点
SQLSERVER中union,cube,rollup,cumpute运算符使用说明
PHP 木马攻击的防御设置方法
Jquery AJAX 框架的使用方法
oracle 更改数据库名的方法
hh.exe 隐藏参数 chm反编译命令参数
JS 实现双色表格实现代码
提高网站性能之 如何对待JavaScript
Python 匹配任意字符(包括换行符)的正则表达式写法