jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用Jquery更改值时,KnockoutJS属性不会更新大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。



我有一系列复选框,我想收集所选的一个.复选框在div中,当div被点击时,复选框也应该被检查:
var oCheckBox = $($(this).find('.chkSocialMediaItem').get(0));
oCheckBox.attr('checked',!$(oCheckBox).attr('checked'));

这个工作很好,但是KnockoutJS没有拿起这个变化,所以不会更新我所选择的项目上的计数器.

我读到你需要触发更改事件的地方.但是当我在复选框上收听更改事件时,实际上会被触发.

任何帮助将不胜感激,
谢谢 !

更新:

我找到了一个“淘汰赛”的解决方案.
在我的div中,我做了一个数据绑定“点击”,并更改了该函数中的检查值:

<script type="text/html" id="Template">
    <div class="item" data-bind="click: DivClicked">
       <input type="checkBox" data-bind="checked: IsASelectedItem" class="chkSocialMediaItem"/>
    </div>
</script>


function SocialMediaSearchItem() {          
            this.IsASelectedItem = ko.observable();
            this.DivClicked = function () {
                this.IsASelectedItem(!this.IsASelectedItem());
            };
}

这是唯一的解决方案吗?我真的很希望看到一个Jquery解决方案.

解决方法

检查的绑定仅侦听点击事件.根据实际检查值的设置,手动触发点击事件最终会使该框不同步.

设置值的首选方法是更新视图模型值,就像您在上面的第二个示例中所做的那样.

但是,如果您使用1.3beta,那么使用ko.dataFor API可以轻松地连接元素及其相应的数据.它看起来像:

var oCheckBox = $('.chkSocialMediaItem'),data = ko.dataFor(oCheckBox[0]);
      data.selectedItem(!data.selectedItem());

大佬总结

以上是大佬教程为你收集整理的使用Jquery更改值时,KnockoutJS属性不会更新全部内容,希望文章能够帮你解决使用Jquery更改值时,KnockoutJS属性不会更新所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: