2

私はここ数日ノックアウトで働いています。物事は比較的順調に進んでいますが、私は問題にぶつかりました。ここでアニメーショントランジションを実行できないようです。理想的には、destroyイベントで特異な要素をフェードアウトできるようにしたいと思います。また、ページ遷移でテーブル全体をアニメーション化できるようにしたいと思います。要素は常に「未定義」であるため、動作させることができません。

これは私のforeachバインドです:

<tbody data-bind='foreach: { data : $root.displayResults(startValue(), endValue()), beforeRemove: hideElement }'>

しかし、関数が呼び出されると、未定義のjQueryエラーが発生します

self.hideElement = function(elem) {
    $(elem).hide(300)
}

このフィドルを見て、皆さんの考えを教えてください。

4

1 に答える 1

1

beforeRemoveKOは、テンプレートに基づいてコールバックを複数回呼び出すことを知っておく必要があります。この場合、KOはテキストノード、tr、および別のテキストノードになります。

したがって、テキストノードを除外しelem.nodeType == 1、ノードタイプが要素であることを意味する場合にのみ非表示にする必要があります。

self.hideElement = function(elem) {
    if (elem.nodeType === 1) 
       $(elem).hide(300)
}

これは、機能する削除機能を備えたものです。また、が呼び出されるJSFiddle回数を確認するためにログを追加しました。beforeRemove

したがって、アニメーショントランジションの例hidePlanetElementメソッドも同様です。

于 2012-10-22T06:35:49.253 に答える