当我尝试触发复选框的单击事件时,复选框数据绑定值不会更改.
我创建了一个jsfiddle,当我点击按钮时,我希望值绑定改变但不是.
有帮助吗?
最佳答案
在jQuery中调用触发器(“click”)只会触发“click”事件处理程序.它实际上不会导致复选框上的单击(从而更改已检查状态) – 唯一一次它执行类似的操作是在元素具有与事件相同的函数属性的情况下(例如,表单) .submit() – 但没有checkBox.click()).
但是既然你正在使用淘汰赛,你可能会这样做:
var viewmodel = {
IsSelected: ko.observable(false) // Initially false
};
ko.applyBindings(viewmodel);
$('#buttonInput').click(function(){
viewmodel.IsSelected(true); // <-------
// Or,in order to toggle:
// viewmodel.IsSelected(!viewmodel.IsSelected());
});
这首先是使用淘汰赛的重点.在视图模型上进行更改,而不是视图.由于复选框的checked属性是绑定到IsSelected的数据,因此更改IsSelected将更改复选框的checked属性.