checkbox复选框和div click事件重叠,点击div后复选框也被选中,同时改变div颜色,否则则不选中

求能复用的JQ的写法。一个页面里会有很多类似div,不能互相干扰... 求能复用的JQ的写法。一个页面里会有很多类似div,不能互相干扰 展开
 我来答
工程师首岳
2014-06-26 · TA获得超过278个赞
知道小有建树答主
回答量:162
采纳率:100%
帮助的人:103万
展开全部
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <style>
        div
        {
            display: inline-block;
            width: 100px;
            margin-left: 10px;
        }
    </style>
    <script src="Scripts/jquery-1.9.1.min.js" type="text/javascript"></script>
    <script>
        //注册checkbox的click事件
        $(document).on('click', ':checkbox', function (e) {
            //停止事件冒泡,当点击的是checkbox时,就不执行父div的click
            e.stopPropagation();
            //checkbox选中,div变色,否则不变色
            $(this).prop('checked') ? 
            oCk.parent().css('background-color', 'blue') 
            : oCk.parent().css('background-color', '');
        });

        //注册div的click事件,点击div时动态执行checkbox的click事件
        $(document).on('click', 'div', function () {
            $(this).find(':checkbox').click();
        })
    </script>
</head>
<body>
    <div>
        <input type="checkbox" />A
    </div>
    <div>
        <input type="checkbox" />B
    </div>
    <div>
        <input type="checkbox" />C
    </div>
</body>
</html>
追问
这样效果是有问题的,第一次点击的时候div没变色,要点击第二次才变色。我想要的就是checked=checked的时候div变色..能否帮再改下
追答
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <style>
        div
        {
            display: inline-block;
            width: 100px;
            margin-left: 10px;
        }
    </style>
    <script src="Scripts/jquery-1.9.1.min.js" type="text/javascript"></script>
    <script>
        //注册checkbox的click事件
        $(document).on('click', ':checkbox', function (e) {
            //停止事件冒泡,当点击的是checkbox时,就不执行父div的click
            e.stopPropagation();
            var oCk = $(this), parentDiv = oCk.parent();
            oCk.prop('checked') ? parentDiv.css('background-color', 'blue') : parentDiv.css('background-color', '');
        });
        //注册div的click事件,点击div时动态执行checkbox的click事件
        $(document).on('click', 'div', function () {
            $(this).find(':checkbox').click();
        })
    </script>
</head>
<body>
    <div>
        <input type="checkbox" />A
    </div>
    <div>
        <input type="checkbox" />B
    </div>
    <div>
        <input type="checkbox" />C
    </div>
</body>
</html>
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式