我有这两个事件:
$(document).on('change','#trackAll',function() {
$('#tblTrackPlanFood')
.find("input[type='checkbox']")
.prop('checked', this.checked);
});
$(document).on('click','#trackAllLbl',function() {
$('#tblTrackPlanFood')
.find("input[type='checkbox']")
.prop('checked', this.checked);
});
第一个'更改'事件是一个复选框(#trackAll)。它在IE8中工作正常。按预期选中/取消选中'#tblTrackPlanFood'表中的复选框。
然而,第二个事件'click''#trackAllLbl'在标签上。在IE8中它不起作用。我可以插入一个alert()并确认选择器工作正常,但是当单击标签时,相同的'#tblTrackPlanFood'复选框代码不起作用。
知道为什么会这样吗?
答案 0 :(得分:0)
问题是.prop('checked',this.checked);
这是指标签,而不是复选框。这样做:
$(document).on('click','#trackAllLbl',function() {
$('#tblTrackPlanFood')
.find("input[type='checkbox']")
.prop('checked', $("#trackAll").is(":checked"));
});
答案 1 :(得分:0)
代码中的问题是,在第二个函数中,this
不是复选框,而是标签。
你需要这样的东西:
.prop('checked', document.getElementById('trackAll').checked);