$('.lecture, .lecture > *:not(".meta")').click(function(event) {
event.stopPropagation();
var myCheckbox = $(this).children(':checkbox');
if(myCheckbox.is(':checked')){
myCheckbox.removeAttr('checked');
$(this).closest('.vortrag').css({'background':'#F0F0F0'});
}else{
myCheckbox.attr('checked','checked');
$(this).closest('.vortrag').css({'background':'#F8C1AC'});
}
});
任何人都可以解释为什么我的.lecture div在未选中其中的复选框时会重新着色,但是当它被选中时它不会重新着色。
所以我有多个div与.lecture作为一个类。这些div内部是复选框。我希望整个div.lecture在单击时触发复选框(而不仅仅是复选框本身)。选中复选框时,.lecture div应具有不同的背景颜色。一切正常。单击父.lecture div时,复选框将被选中并取消选中。当我第一次点击它时它甚至会变色。但是,一旦选中了复选框并再次单击它以取消选中它,则backgroundColor不会再次更改。
那可能是什么?
答案 0 :(得分:1)
如果该复选框是.lecture
的直接子项,那么您的第二个规则将定位它。
但是如果你点击右边的复选框,那么
var myCheckbox = $(this).children(':checkbox');
将返回一个空的jQuery对象,因为您尝试找到 子 复选框(并且 this
是复选框)..
如果您认为这不是问题,请提供实际的html结构。