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

 更新时间:2014年04月02日 16:48:19   作者:  
这篇文章主要介绍了jQuery防止click双击多次提交及传递动态函数方法,需要的朋友可以参考下
今天是写的是关于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>

相关文章

  • jquery+css实现简单的图片轮播效果

    jquery+css实现简单的图片轮播效果

    这篇文章主要介绍了jquery+css实现简单的图片轮播效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • jQuery实现公告新闻自动滚屏效果实例代码

    jQuery实现公告新闻自动滚屏效果实例代码

    这篇文章主要介绍了jQuery实现公告新闻自动滚屏效果实例代码的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • 原始XMLHttpRequest方法详情回顾

    原始XMLHttpRequest方法详情回顾

    一般来说,使用XMLHttpRequest对象来进行登陆验证要经过以下这几个步骤
    2013-11-11
  • jquery 步骤进度轴插件的实现代码

    jquery 步骤进度轴插件的实现代码

    今天给大家分享一个jquery插件之步骤进度轴的实现思路,这个功能在一些网站注册账号时一般都会用到,今天就通过实例代码给大家详细介绍下,感兴趣的朋友跟随小编一起看看吧
    2021-05-05
  • 基于jquery的loading 加载提示效果实现代码

    基于jquery的loading 加载提示效果实现代码

    有时候为了更好的用户体验,使用jquery的朋友可以参考下代码。
    2011-09-09
  • 常见的jQuery选择器汇总

    常见的jQuery选择器汇总

    本文汇总介绍了常见的jQuery选择器知识,包含基本元素选择器、分层选择器、基本条件选择器、内容条件选择器、可见性条件选择器、属性选择器、子元素选择器、表单元素选择器、表单属性选择器。十分的详尽,有需要的小伙伴参考下吧
    2014-11-11
  • 使用DataTable插件实现异步加载数据

    使用DataTable插件实现异步加载数据

    本文给大家分享的是Jquery+dataTable插件来实现异步加载数据的示例代码,非常实用,有需要的小伙伴可以参考下
    2017-11-11
  • jQuery的deferred对象详解

    jQuery的deferred对象详解

    开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异步的操作(比如ajax读取服务器数据),也有同步的操作(比如遍历一个大型数组),它们都不是立即能得到结果的。
    2014-11-11
  • jQuery基于扩展实现的倒计时效果

    jQuery基于扩展实现的倒计时效果

    这篇文章主要介绍了jQuery基于扩展实现的倒计时效果,涉及jQuery扩展的使用与时间操作的相关技巧,需要的朋友可以参考下
    2016-05-05
  • zTree节点文字过多的处理方法

    zTree节点文字过多的处理方法

    这篇文章主要为大家详细介绍了zTree节点文字过多的处理方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11

最新评论