我有一系列复选框,我想收集选中的复选框。 复选框在div中,当单击div时,应该同时选中复选框:
var oCheckBox = $($(this).find('.chkSocialMediaItem').get(0));
oCheckBox.attr('checked', !$(oCheckBox).attr('checked'));
这段代码运行正常,但是KnockoutJS没有检测到变化,因此没有更新选定项的计数器。
我在某处读到需要触发change事件。但是当我监听复选框的change事件时,它确实被触发了。
希望能得到任何帮助,谢谢!
更新:
我找到了一个“knockout”的解决方案。 在我的div中,我使用了"data-bind"绑定了"click"事件,并在该函数中更改了"checked"值:
<script type="text/html" id="Template"></script>
function SocialMediaSearchItem() {
this.IsASelectedItem = ko.observable();
this.DivClicked = function () {
this.IsASelectedItem(!this.IsASelectedItem());
};
}
这是唯一的解决方案吗?我真的很想看到一个 jQuery 的解决方案。
data-bind
属性,然后使用属性名称和数据 (data['somePropertyName']
)。 - RP Niemeyer