jquery点击label触发2次的问题

今天写问卷的时候遇到个label点击的时候,监听的click事件被执行两次;产生这个的原因么。。。事件冒泡

<div class="questionBox checkBox"><div class="title"> 2.你如何理解创新意识的重要性?</div><div class="checkBoxList" data-more="2"><label><input type="checkbox" /><span>创新意识是工作必须的</span></label><label><input type="checkbox" /><span>创新意识是工作必须的</span></label><label><input type="checkbox" /><span>创新意识是工作必须的</span></label><label><input type="checkbox" /><span>创新意识是工作必须的</span></label><label><input type="checkbox" /><span>创新意识是工作必须的</span></label></div><input type="text" class="text" placeholder="在此输入其它的意见" /></div>
$(".checkBoxList label").click(function(){var more = $(this).parent(".checkBoxList").attr("data-more");var length = $(this).parent(".checkBoxList").find("label").length;var NowCheck=0;for(i=0;i<length;i++){if ($(this).parent(".checkBoxList").find("label").eq(i).find("input").prop("checked")==true){pass="1"NowCheck = NowCheck+1}}if(NowCheck>more){alert("本题最多选取" + more + "个")    }})

然后么找了下方法。。。

方法一:把label扔了。。。

然后方法二

只认input,判断事件源为input(这是网上有人贴出来的解决方法)http://www.cnblogs.com/feng524822/p/4084037.html

 

/*** 是否包含某id的input后代元素* @param  {Element}  elm 要判断的元素* @param  {String}   id  要匹配的id* @return {Boolean}*/function hasInput(elm, id) {for (var i = 0, inputs = elm.getElementsByTagName("input"), len = inputs.length; i < len; i++) {if (inputs[i].id === id) {return true;}}return false;}/*** 判断某元素下的label是否有关联的input* @param  {Element}  elm    要判断的元素* @param  {Element}  label  label元素* @return {Boolean}*/function isLabelhasRelativeInput(elm, label) {if (label.getElementsByTagName("input").length) {return true;}var forT = label.getAttribute("for");var isIE6 = !-[1,] && !window.XMLHttpRequest;// IE6不支持for属性if (forT && hasInput(elm, forT) && !isIE6) {return true;}return false;}document.getElementById("test").onclick = function(e) {var ev = e || window.event;var srcElm = ev.target || ev.srcElement;if (srcElm.tagName === 'LABEL' && isLabelhasRelativeInput(this, srcElm)) {return;}// do something;}

。。。反正我是看的有点醉了

然后方法三。。。

通过事件触发的时间戳来判断,其实和事件冒泡有关的问题都可以通过该方法去处理。安全无公害

1    var evTimeStamp = 0;
2     document.getElementById("test").onclick = function(e) {
3         var now = +new Date();
4         if (now - evTimeStamp < 100) {
5             return;
6         }
7         evTimeStamp = now;
8         console.log(2);
9     }

 

好了讨论到最后。。。我还是吧label给扔了。。。HOHOHO

$(".checkBoxList label input").click(function(){var more = $(this).parents(".checkBoxList").attr("data-more");var length = $(this).parents(".checkBoxList").find("label").length;var NowCheck=0;for(i=0;i<length;i++){if ($(this).parents(".checkBoxList").find("label").eq(i).find("input").prop("checked")==true){pass="1"NowCheck = NowCheck+1}}if(NowCheck>more){alert("本题最多选取" + more + "个")    }})

 

 

好久好久没有出来冒泡了~~~最近宛如海绵吸水般的吸收着知识。react也搞得风风火火!!!偶尔还客串下写点PHP的接口。做一个商城。。。外加一个聊天室。。。好咯。。。继续工作了,

最后祝所有端午节还在撸代码的程序猿,事业有成

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/458383.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git本地项目管理

Git 基本工作流程 | git仓库 | 暂存区 | 工作目录 | | ---------------- | ------------------ | ------------------- | | 用于存放提 交记录 | 临时存放被修改文件 | 被Git管理的项目目录 | Git 的使用 1.5.1 Git 使用前配置 在使用 git 前&#xff0c;需要告诉 git 你…

Python中self用法详解

在介绍Python的self用法之前&#xff0c;先来介绍下Python中的类和实例…… 我们知道&#xff0c;面向对象最重要的概念就是类&#xff08;class&#xff09;和实例&#xff08;instance&#xff09;&#xff0c;类是抽象的模板&#xff0c;比如学生这个抽象的事物&#xff0c;…

siwft初学(一)

今天刚開始学习swift语言。首先须要下载xcode6 beta版本号。正式版本号然后会公布。自己学习总结一下&#xff0c;假设有误。请大家指出。 创建project的时候。language选择swift语言。 swift语言比起c&#xff0c;oc很的简洁。開始真有点不适应&#xff0c;没有main函数&#…

python简单爬虫(一)

学习python前纠结了下&#xff0c;到底是应该一个个知识点吃透&#xff0c;然后写些小程序。还是应该快速掌握基础语法&#xff0c;快速实践。思考后认为前者这么学习速度真心不高&#xff0c;于是花2天时间看了下python3的语法&#xff0c;虽然很多都不明白&#xff0c;但是带…

Github远程仓库管理

1. Github 在版本控制系统中&#xff0c;大约90%的操作都是在本地仓库中进行的&#xff1a;暂存&#xff0c;提交&#xff0c;查看状态或者历史记录等等。除此之外&#xff0c;如果仅仅只有你一个人在这个项目里工作&#xff0c;你永远没有机会需要设置一个远程仓库。 只有当…

oracle 中的trunc()函数及加一个月,一天,一小时,一分钟,一秒钟方法

返回处理后的数据&#xff0c;不同于round()&#xff08;对数值进行四舍五入处理&#xff09;&#xff0c;该函数不对指定小数前或后的数值部分进行舍入处理。 语法&#xff1a;trunc(number[,decimals]) 其中&#xff0c;number为待做处理的数值&#xff0c;decimals为需要保留…

【Halcon】Halcon与OpenCV介绍、比较

from:https://blog.csdn.net/taily_duan/article/details/514997691.MVTec HALCONMVTec HALCON 是世界上最全能的机器视觉软件.世界各地的用户从HALCON为快速开发图像分析和机器视觉程序的灵活架构获益匪浅.HALCON 提供了超过1100多种具备突出性能控制器的库,如模糊分析,形态,模…

直接拿来用!最火的Android开源项目(完结篇)

直接拿来用&#xff01;最火的Android开源项目&#xff08;完结篇&#xff09; 2014-01-06 19:59 4785人阅读 评论(1) 收藏 举报 分类&#xff1a;android 高手进阶教程&#xff08;100&#xff09; 摘要&#xff1a;截至目前&#xff0c;在GitHub“最受欢迎的开源项目”系…

ABP理论学习之Web API控制器(新增)

返回总目录 本篇目录 介绍AbpApiController基类 本地化审计日志授权工作单元其他介绍 ABP通过Abp.Web.ApiNuget包集成了 ASP.NET Web API控制器。你可以像以往创建Asp.Net Web API控制器那样创建Web API控制器。依赖注入对于有规律的ApiController&#xff08;其实就是继承自Ab…

C++类构造函数初始化列表及初始化成员变量的误区

构造函数初始化列表以一个冒号开始&#xff0c;接着是以逗号分隔的数据成员列表&#xff0c;每个数据成员后面跟一个放在括号中的初始化式。例如&#xff1a;[cpp] view plaincopyclass CExample { public: int a; float b; //构造函数初始化列表 CExampl…

将centos7打造成桌面系统

前言 以下所有操作默认在root权限下执行&#xff0c;桌面环境是kde&#xff0c;使用gnome的也可以参考一下。我收集的以下要用到的一些安装包&#xff0c;360网盘http://yunpan.cn/csMhBAp92vTgN 提取码 92e2以下要用的安装软件语法&#xff1a;通过软件源在线安装&#xff1a;…

VC2010打开资源视图时提示“指南必须指定类型”,.rc资源文件损坏(转)

VC: 打开资源视图时提示“指南必须指定类型 ”(Guideline……specify type) &#xff0c;.rc资源文件损坏 可能是TFS导致的使用记事本打开.rc文件&#xff0c;找到“DESIGNINFO”节&#xff0c;会看到如下的数据&#xff1a; BEGIN , 50 , 13798327 EN…

C++ virtual 析构函数

copy自:http://zxjgoodboy.blog.sohu.com/61482463.html 在此基础上稍作修改C中虚析构函数的作用 我们知道&#xff0c;用C开发的时候&#xff0c;用来做基类的类的析构函数一般都是虚函数。可是&#xff0c;为什么要这样做呢&#xff1f;下面用一个小例子来说明&#xff1a; …

(八)企业部分之nginx+tomcat+memcached负载均衡集群搭建

【server1】vim /usr/local/lnmp/tomcat/conf/context.xml<Context>......<Manager className"de.javakaffee.web.msm.MemcachedBackupSessionManager"memcachedNodes"n1:172.25.45.1:11211,n2:172.25.45.2:11211"failoverNodes"n1"req…

泛型算法(二十三)之排列算法

1、is_permutation(ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2)&#xff1a;C11版本&#xff0c;判断两个序列是否为同一元素集的两个排列。 std::vector<int> c1 {1, 2, 3, };std::vector<int> c2 {1, 2, 3, 1, 3};//判断两个序…

C++ 虚函数经典深入解析

from&#xff1a;https://blog.csdn.net/gggg_ggg/article/details/45915505C中的虚函数的作用主要是实现了多态的机制。 关于多态&#xff0c;简而言之就是用父类型别的指针指向其子类的实例&#xff0c;然后通过父类的指针调用实际子类的成员函数。 这种技术可以让父类的指针…

21OGNL与ValueStack(VS)-静态方法访问

转自&#xff1a;https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html 在LoginAction中增加如下方法&#xff1a;public static String getSta() { return "这是LoginAction中的静态方法"; } 然后在loginSuc.jsp中增加如下代码&#xff1a; 调用Action中的静…

win7通过easyBCD引导ubuntu

我电脑配置了固态和传统双硬盘&#xff0c;SSD已经装了win7&#xff0c;然后在传统硬盘上安装ubuntu&#xff0c;结果安装完成后看不到ubuntu的入口。因为跟win7不是装在一个驱动设备上&#xff0c;所以使用easyBCD的Linux&#xff0f;BCD选项也无法正确引导。最后通过easyBCD的…

深入理解C++中的explicit关键字

深入理解C中的explicit关键字kezunhaigmail.com http://blog.csdn.net/kezunhaiC中的explicit关键字只能用于修饰只有一个参数的构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的&#xff0c; 跟它相对应的另一个关键字是implicit, 意思是隐藏的,构造函数默认情况下即声…

JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结(转)

hibernate以及mybatis都有过学习&#xff0c;在java面试中也被提及问道过&#xff0c;在项目实践中也应用过&#xff0c;现在对hibernate和mybatis做一下对比&#xff0c;便于大家更好的理解和学习&#xff0c;使自己在做项目中更加得心应手。 第一方面&#xff1a;开发速度的对…