crossFadeVisible bindingHandler を作成しようとしています。主なアイデアは、値を設定するときにフェードインしたいということです。値をクリアする (つまり、null に設定する) 場合はフェードアウトさせ、値を変更する場合は、古い値でフェードアウトし、新しい値でフェードインしたいと思います。
私はこれについて午後の大半を戦ってきたので、それが可能かどうかは完全にはわかりません.
私は、他の人がやっているのを見た後、このためのjsfiddleを作成することにしました ( http://jsfiddle.net/jrstarke/4DTFq/20/ )。
最初は値は未定義ですが、Set を押すと値が 1 に設定され、新しいボタンがいくつか追加されます。値をクリアすると、期待どおりに消え、再度設定すると正常に機能します。インクリメントを押すと、すべてが期待どおりに機能します。
そして今、私が説明できない部分。「2」が表示されている場合、インクリメントを押しても何も起こりません。クリア、ボタンは消えます (元の値をクリアしたため)。しかし、表示値は同じままです。
何が起こったように見えますが、説明できませんがvalue.displayed(value())
、新しい表示値を現在の値に設定するために を呼び出すと、更新メソッドがすぐに再度呼び出され (?)、その時点でメソッドを実行します。完全に更新され、期待どおりに更新されますが、この更新メソッドが再度呼び出されることはないため、変更から値のバインドを解除したようです。
これを修正する方法を知っている人はいますか、それとも私がやろうとしていることは可能ですか?