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

时间:2012-02-01 05:22:29

标签: jquery jquery-selectors knockout.js

当我尝试触发复选框的点击事件时,复选框数据绑定值没有改变。

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

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

任何帮助?

1 个答案:

答案 0 :(得分:4)

在jQuery中调用触发器(“click”)只会触发“click”事件处理程序。它实际上并不会导致复选框上的单击(从而更改已检查状态) - 唯一一次它执行类似的操作是在元素具有与事件名称相同的函数属性的情况下(例如{ {1}} - 但没有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()); }); 属性是绑定到checked的数据,因此更改IsSelected将更改复选框的IsSelected属性。