0

我有这两个事件:

$(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”复选框代码不起作用。

知道为什么会这样吗?

4

2 回答 2

0

问题是 .prop('checked', this.checked);

这是指标签,而不是复选框。改为这样做:

$(document).on('click','#trackAllLbl',function() {
    $('#tblTrackPlanFood')
        .find("input[type='checkbox']")
        .prop('checked', $("#trackAll").is(":checked"));
});
于 2013-09-12T17:45:51.673 回答
0

您代码中的问题是,在第二个函数中,this不是复选框,而是标签。

你需要这样的东西:

.prop('checked', document.getElementById('trackAll').checked);
于 2013-09-12T17:46:21.793 回答