点击禁用功能,否则功能有效?

时间:2013-03-21 23:12:21

标签: javascript jquery

我在这里有一个jQuery代码:

jQuery(document).ready(function () {
    $("td").click(function (e) {
        var chk = $(this).closest("tr").find("input:checkbox").get(0);

        if (e.target != chk) {
            chk.checked = !chk.checked;
        }

        if ($(this).closest("tr").find("input:checkbox").is(":checked")) {
            $(this).closest("tr").css("font-weight", "bold");
        } else {
            $(this).closest("tr").css("font-weight", "");
        }
    });
});

正如您所看到的,我有很多复选框,点击任意td它已经检查并添加了CSS。

工作正常。我想要的是,同样的形式我也有很多select个盒子 当我尝试选择某些功能时 我想在单击选择框时禁用该功能,因为我想选择不启用该复选框。

2 个答案:

答案 0 :(得分:1)

您可以检查目标是否是选择元素中的选择或任何内容,例如选项:

$(function () {
    $("td").on('click', function (e) {
        if (! $(e.target).closest('select').length ) {
           var tr  = $(this).closest("tr"),
               chk = tr.find("input[type='checkbox']").get(0);
           if (e.target != chk) {
               chk.checked = !chk.checked;
           }
           if ( tr.find("input[type='checkbox']").is(":checked")) {
               tr.css("font-weight", "bold");
           } else {
               tr.css("font-weight", "");
           }
        }
    });
});

答案 1 :(得分:0)

如果我理解正确,你想测试鼠标点击的内容,如果是,那么不要更改复选框,对吗?

您应该可以从活动的属性中获取。例如:

if (!$('#' + e.target.id).hasClass('mySelectBox')){
  //your code...
}

可能有一种更简洁的方式,我没有测试过,但试试这个:

if (e.target != 'select'){
  //your code..
}

更新:是的,@ dadeoo说了什么!