3

Isotope には、コールバック関数を指定できる場所が 2 つあります。

container.isotope({
    itemSelector: itemSelector,
    layoutMode: 'fitRows',
    onLayout: function() {alert('onLayout callback')}

}, function() {alert('anon callback')});

これら2つの違いが何であるかはわかりません.レイアウトが完了した後、どちらも1回だけ呼び出されるようです. 私はドキュメントを調べましたが、見つけることができるのは

コールバックに似た onLayout は、Isotope インスタンスがそのレイアウト ロジックを実行するたびにトリガーされる関数です。

4

1 に答える 1

5

ソースコードによると、違いはありません。レイアウトが完了すると、3 つのコールバック関数が呼び出される場合があります。1 つは への最後の引数でisotope()渡されたもの、onLayoutオプションで渡されたもの、およびオプションのcompleteメンバーで渡されたものanimationOptionsです。

ソースの関連部分は次のとおりです。

// [...]    
} else if ( callback || onLayout || animOpts.complete ) {
    // has callback
    var isCallbackTriggered = false,
        // array of possible callbacks to trigger
        callbacks = [ callback, onLayout, animOpts.complete ],
        instance = this;
    triggerCallbackNow = true;
    // trigger callback only once
    callbackFn = function() {
        if ( isCallbackTriggered ) {
            return;
        }
        var hollaback;
        for (var i=0, len = callbacks.length; i < len; i++) {
            hollaback = callbacks[i];
            if ( typeof hollaback === 'function' ) {
                hollaback.call( instance.element, $elems );
            }
        }
        isCallbackTriggered = true;
    };
    // [...]
}  

ご覧のとおり、配列は 3 つの潜在的なコールバックで構築されcallbackFn()、関数の場合はそれぞれを順番に呼び出します。

于 2012-02-21T16:49:52.447 に答える