Javascript 单击“禁用功能”,其他功能是否工作?
我这里有一个jQuery代码: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(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说了什么