防止 KO 绑定处理程序在页面加载时触发

Prevent KO binding handler from firing on page load

本文关键字:加载 KO 绑定 处理 程序 防止      更新时间:2023-09-26

我有一个绑定处理程序,可以淡入淡出元素。目前,绑定处理程序在页面加载时触发,导致使用绑定处理程序的所有元素同时闪烁。

我希望元素在第一次传递时忽略绑定处理程序,并且仅在对可观察量的后续更改时触发。向可观察量添加标志是不可行的,因为当新数据从服务器到达时,它们会被替换。

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);
        }
    }        
}

};

为什么不让它触发值 true 而其他值不触发?