敲除时的复选框绑定不起作用于触发事件

Has*_*der 5 jquery jquery-selectors knockout.js

当我尝试触发复选框的单击事件时,复选框数据绑定值不会更改.

我创建了一个jsfiddle,当我点击按钮时,我希望值绑定改变但不是.

http://jsfiddle.net/2T9QZ/13/

有帮助吗?

Jim*_*iTh 4

在 jQuery 中调用触发器(“click”)只会触发您的“click”事件处理程序。它实际上并不会导致复选框上的单击(从而改变选中状态) - 它唯一一次执行类似的操作是在元素具有与事件名称相同的函数属性的情况下(例如form.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());
});
Run Code Online (Sandbox Code Playgroud)

这几乎就是首先使用淘汰赛的目的。在视图模型而不是视图上进行更改。由于复选框的checked属性是绑定到 的数据IsSelected,因此更改IsSelected将更改checked复选框的属性。