【发布时间】:2014-02-02 23:23:40
【问题描述】:
我有一些事件委托在执行某些任务的输入上效果很好:
$("#myParentWrapperId").delegate("input,textarea,select", 'change keypress', function (e) {
//runStuff();
});
<select data-bind="value:MyVM.MyPropValue"></select>
在另一种方法中,我正在以编程方式为一些相同的输入字段更新视图模型。
self.MyListItems()[idx].MyVM.MyPropValue(data.MyVM.MyPropValue);
问题是当我以编程方式为选择字段更新视图模型时,它似乎也触发了更改事件并触发了我不想要的上述事件委托。
是否可以:
A) 仍然更新视图模型,但不会触发 select 的 onchange 事件,但不会破坏依赖的 observables?
或
B) 在上面的事件委托中嗅探并区分用户何时引发 onchange 事件和 viewmodel 更新何时引发 onchange 事件?
【问题讨论】:
标签: javascript knockout.js viewmodel onchange