2013-03-21 38 views
1

我有一个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箱子。
当我尝试选择一些功能的作品。
我想禁用单击选择框上的功能,因为我想选择不启用复选框。

回答

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", ""); 
      } 
     } 
    }); 
}); 
+0

谢谢!!工作正常^ _ ^ – 2013-03-21 23:39:01

0

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

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

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

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

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

更新:呀,@adeneo说什么!