我想在更新可观察对象时突出显示绑定到可观察对象的元素,但在初始化可观察对象的绑定时不突出显示。
我尝试使用自定义绑定:
<div data-bind="updateHighlighting: name, text: name"></div>
<input data-bind="value: name" />
ko.bindingHandlers.updateHighlighting = {
update: function(element, valueAccessor) {
$(element).effect("highlight", 2000);
}
};
var vm = {
name: ko.observable("Diego")
};
ko.applyBindings(vm);
但是更新回调不仅在可观察对象更新时运行,而且在自定义绑定的初始化时运行。所以在绑定的初始化处有一个不需要的元素突出显示。
我可以知道,在更新回调中,我是否处于绑定的初始位置以便执行以下操作?
ko.bindingHandlers.updateHighlighting = {
update: function(element, valueAccessor) {
if(!isInit)
$(element).effect("highlight", 2000);
}
};