我有一个绑定处理程序,可以淡入淡出元素。目前,绑定处理程序在页面加载时触发,导致所有使用绑定处理程序的元素同时闪烁。
我希望元素在第一次传递时忽略绑定处理程序,并且仅在对可观察对象的后续更改时触发。向可观察对象添加标志是不可行的,因为当新数据从服务器到达时它们会被替换。
ko.bindingHandlers.highlight = {
update: function (element, valueAccessor, allBindingsAccessor, viewModel) {
var value = valueAccessor(), allBindings = allBindingsAccessor(), vm = viewModel;
{
var iterations = 3;
for (var i = 0; i < iterations; i++) {
$(element).fadeTo("fast", 0.03);
$(element).fadeTo("slow", 1);
}
}
}
};