同位素回调函数

Dón*_*nal 3 javascript jquery jquery-isotope

Isotope提供了两个可以提供回调函数的地方:

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

}, function() {alert('anon callback')});
Run Code Online (Sandbox Code Playgroud)

我不知道这两者之间有什么区别 - 在布局完成后,它们似乎都被称为一次.我查看了文档,但我能找到的只是

与回调类似,onLayout是每次Isotope实例运行其布局逻辑后都会触发的函数.

Fré*_*idi 5

根据源代码,没有区别.布局完成时可以调用三个回调函数:在最后一个参数中传递的函数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;
    };
    // [...]
}  
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,数组是使用三个潜在的回调callbackFn()构建的,如果它是一个函数,则按顺序调用每个回调.