我正在尝试制作一个 crossFadeVisible bindingHandler。主要思想是,当我们设置一个值时,我希望它淡入。如果我们清除该值(即设置为 null),我希望它淡出,如果我们更改值,我想让它淡出旧值,淡入新值。
我下午的大部分时间都在为此奋斗,所以我不完全确定这是否可能。
我决定按照我看到其他人的做法,为此创建一个jsfiddle ( http://jsfiddle.net/jrstarke/4DTFq/20/ )。
最初该值是未定义的,但如果您点击 Set,我们将值设置为 1,并添加一些新按钮。如果您现在清除该值,它会按预期消失,并且再次设置它可以正常工作。如果你点击增量,一切都会按预期工作。
现在我无法解释的部分。如果显示“2”,您点击增量,则没有任何反应。清除,按钮消失(因为我们现在已经清除了原始值)。但显示值保持不变。
似乎发生了什么,我无法解释,是当我们调用将value.displayed(value())
新的显示值设置为当前值时,它会导致立即再次调用更新方法(?),此时我们运行该方法完全,并且它按预期更新,但似乎我们已经解除了更改的值,因为这个更新方法永远不会被再次调用。
任何人都知道如何解决这个问题,或者我想要做的事情是否可行?