解决监听label时,点击label内input执行两次的bug

在监听label和input点击事件时,发现点击input会导致事件执行两次。原因在于label元素的特性,当点击label内的文本时,会触发关联的控件。解决方法是对点击事件进行拦截,判断点击的目标元素是否为不期望触发事件的元素(如'SMALL'或'B'),从而避免事件重复执行。修复后,点击label下的input能正常执行预期操作。
摘要由CSDN通过智能技术生成

   有的时候,我们需要监听label点击事件和input点击事件,如下所示:

         <label id="checkbox"  data-role="checkbox"> 

<input id="storepwd"  type="checkbox" >

       </label>

  我们希望点击label,checkbox能够被监听

$(this).find("label").on("click", function(d) {
var g = $(this);
var f = g.data("role");
if (f === "checkbox") {
if (g.hasClass("active")) {
g.removeClass("active").find("input[type=checkbox]").prop("checked", false);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值