2

我有一个看起来像这样的页面:

<div data-role="view" id="side-root" data-title="Check-Boxes" data-model="myViewModel">
  <ul data-title="People" data-role="listview" data-bind="source: dsPeople" data-template="person_list_item" data-style="inset"></ul>
</div>
<script id="person_list_item" type="text/x-kendo-template">
  <label>
    <span data-bind="text: firstName"></span> <span data-bind="text: lastName"></span>
<input type="checkbox" data-bind="checked: isChecked, click: clickHandler"/>
  </label>
</script>

现在,绑定到 isChecked 字段的 MVVM 可以正常工作,但 clickHandler 永远不会被调用。如果我从数据绑定值中删除“checked: isChecked”绑定,那么 clickHandler 就会被调用。

我还尝试为复选框设置数据绑定,例如:

data-bind="checked: isChecked, events: { click: clickHandler }"

具有相同的行为。

这是设计使然,还是我配置错误?

谢谢

4

2 回答 2

6

尝试改用更改事件。我遇到了同样的问题并解决了它。我猜您无法将数据绑定到选中并绑定到单击事件。

数据绑定=“检查:检查,事件:{更改:clickHandler}”

于 2013-10-24T23:17:22.770 回答
2

这是处理复选框单击/更改事件的演示

HTML:

<input type="checkbox" data-bind="checked: checkboxChecked, events: { change: clickHandler}">
         Click the checkbox to view change event, also keep your console open

JS:

var viewModel = kendo.observable({
  checkboxChecked: true,
  clickHandler: function(e) {
    console.log('clicked ', e);
    alert("Checkbox checked = "+e.data.checkboxChecked);
  }
});
kendo.bind($("#example"), viewModel);
于 2017-09-28T07:07:35.887 回答