2

我有以下基于 Ryan Niemeyer 博客的自定义绑定,但我认为它不起作用。div 并没有让他褪色,而是根本不显示。我尝试添加“init”函数,但这并没有解决问题,所以我回到了简单的更新函数,就像 Ryan 在示例中使用的那样。

ko.bindingHandlers.fadeInIf = {
    update: function(element, valueAccessor) {
        ko.bindingHandlers.if.update(element, valueAccessor);
        $(element).fadeIn(); 
    } 
};

在 html 中,我执行以下操作:

<div data-bind="fadeInIf: show">...</div>

博文:http ://www.knockmeout.net/2011/07/another-look-at-custom-bindings-for.html

4

1 回答 1

0

if您代理的绑定fadeInIf实际上用于创建 dom 元素,有关详细信息,请参阅此文档

实现一个fadeInIf你简单的需要。

ko.bindingHandlers.fadeInIf = {
    update: function(element, valueAccessor) {
        var value = ko.utils.unwrapObservable(valueAccessor());
        if (value) {
            $(element).fadeIn();
        }
    }
};

http://jsfiddle.net/madcapnmckay/3rRUQ/2/

如果您想要的更多是一个 fadeVisible 绑定,我在小提琴中也包含了一个示例。

希望这可以帮助。

于 2012-06-03T06:44:07.617 回答