为了账号安全,请及时绑定邮箱和手机立即绑定

JS input点击选中

JS input点击选中

守着一只汪 2019-02-24 13:19:14
代码如下 <span class="hidemore"><input type="checkbox">按钮</span>效果$(".hidemore").click(function () {    var checked = $(this).find("input").is(':checked');    if (checked === false) {        $(this).find("input").prop("checked", "checked");        $(this).parent().find("span:first-child").find("a").removeClass("on");    } else if (checked === true) {        $(this).find("input").removeAttr("checked");    }});这段代码很奇怪,点击span的时候input能打上勾,但是点击input的时候勾选不上。我一直觉得是冒泡原因。请问下大牛写还有什么方法
查看完整描述

2 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

input 在hidemore中的,你点击了hidemore会让input 也点击了的,你应该把input 冒泡的排除出去

检测方法:


   $(".hidemore").click(function (e) {

            var checked = $(this).find("input").is(':checked');

            if(event.target.nodeName==="INPUT"){

                console.log(event.target.checked);  //true

            };

            if (checked === false) {

                $(this).find("input").prop("checked", true);

            } else if (checked === true) {

                $(this).find("input").prop("checked",false);

            }

            console.log(event.target.checked);      //false    

        });

可见input改变了两次


js


  var span = document.getElementsByClassName('hidemore')[0];

        var inp = span.getElementsByTagName('input')[0];

        span.onclick=function(e){

            if(e.target.nodeName==='INPUT'){

                return;

            }else{

                inp.checked = !inp.checked;

            }

        }

jq


      $(".hidemore").click(function (event) {

            var checked = $(this).find("input").is(':checked');

            if(event.target.nodeName==="INPUT")return;

            if (checked === false) {

                $(this).find("input").prop("checked", true);              

            } else{

                $(this).find("input").prop("checked",false);

            }          

        });


查看完整回答
反对 回复 2019-03-05
?
侃侃无极

TA贡献2051条经验 获得超10个赞

有冒泡吧,你点input也是点到了span,就相当于双击


查看完整回答
反对 回复 2019-03-05
  • 2 回答
  • 0 关注
  • 1788 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号