单击li以选中/取消选中复选框

我点击后应用下一个代码使li检查/取消选中子复选框。 问题是当单击复选框本身时它不起作用。 我已经在这里阅读了post并试图应用e.stopPropagation(); 但仍然没有工作,任何想法?

  $('#columnList li').click(function(){ var check = $(this).children(); var checkVal = check.attr('value'); var helper = $('.' + checkVal); console.log(helper); if(check.is(':checked')){ check.attr('checked',''); $.each(helper, function(i, e){ $(helper[i]).hide(); }); }else{ check.attr('checked','checked'); $.each(helper, function(i, e){ $(helper[i]).show(); }); } }); $('input[type="checkbox"]').click(function(){ e.stopPropagation(); }); 

HTML是带有子复选框的普通ul 。 没什么特别的。

尝试改变 –

 $('input[type="checkbox"]').click(function(){ e.stopPropagation(); }); 

至 –

 $('input[type="checkbox"]').click(function(e){ e.stopPropagation(); }); 

您应该尝试将事件传递给函数

 $('input[type="checkbox"]').click( function(e) { e.stopPropagation(); });