im试图创建与jQuery UI可重新分配的小部件的敲除。我的自定义绑定与视图模型上的2个不同的可观察物结合,即"左"one_answers"宽度"。
<div class="layer" data-bind="resizable: {left: left, width: width}">
<div class="left ui-resizable-handle ui-resizable-w"><<<</div>
<div class="right ui-resizable-handle ui-resizable-e">>>></div>
</div>
ko.bindingHandlers.resizable = {
init: function(element, valueAccessor, allBindingsAccessor, viewModel) {
var values = valueAccessor();
$(element).resizable({
handles: null,
resize: function(event, ui) {
values.left(ui.position.left);
values.width(ui.size.width);
}
});
},
update: function(element, valueAccessor, allBindingsAccessor, viewModel) {
var values = valueAccessor();
$(element)
.css('left', values.left() + 'px')
.css('width', values.width() + 'px')
;
}
};
var vm = {
left: ko.observable(50),
width: ko.observable(300)
};
ko.applyBindings(vm);
问题是,当我使用左侧手柄调整DIV大小时,2个可观测值会更新,从而在相同的绑定中触发2个更新。我需要它仅触发一个更新。
我的这种约束力有什么选择?创建与多个可观察到的绑定的绑定的推荐方法是什么?
我的现实世界代码更为复杂,但是我认为IV将我的问题归结为这个小提琴:
http://jsfiddle.net/mattes75/3dwvp/10/
您是否尝试使用Michael Best的淘汰赛延期更新插件?
这是一个更新的小提琴:http://jsfiddle.net/jearles/3dwvp/11/
您需要做的就是在淘汰后包括他的.js文件。
<script type="text/javascript" src="knockout-2.1.0.js"></script>
<script type="text/javascript" src="knockout-deferred-updates.js"></script>