Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击“禁用功能”,其他功能是否工作?_Javascript_Jquery - Fatal编程技术网

Javascript 单击“禁用功能”,其他功能是否工作?

Javascript 单击“禁用功能”,其他功能是否工作?,javascript,jquery,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

我这里有一个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或select元素中的任何内容,如选项:

$(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", "");
           }
        }
    });
});

您只需检查目标是否为select或select元素中的任何内容,如选项:

$(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", "");
           }
        }
    });
});

如果我理解正确,您希望测试鼠标单击的内容,如果是,则不要更改复选框,对吗

您应该能够从事件的属性中获得它。例如:

if (!$('#' + e.target.id).hasClass('mySelectBox')){
  //your code...
}
可能有一种更简洁的方法,我还没有测试过,但请尝试以下方法:

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

更新:是的,@adeneo说了什么

如果我理解正确,您希望测试鼠标单击的内容,如果是,则不要更改复选框,对吗

您应该能够从事件的属性中获得它。例如:

if (!$('#' + e.target.id).hasClass('mySelectBox')){
  //your code...
}
可能有一种更简洁的方法,我还没有测试过,但请尝试以下方法:

if (e.target != 'select'){
  //your code..
}
更新:是的,@adeneo说了什么