2013-02-10 83 views
2

我想在一個頁面中使用多個同位素實例。 其中一個實例是角落郵票,而其他實例是「砌石」郵票重命名同位素砌體中的佈局

我想用新名稱homeMasonry重新命名cornertamp。

如果我從http://isotope.metafizzy.co/docs/extending-isotope.html重命名2個功能我被卡住了Uncaught TypeError: Cannot set property 'cols' of undefined

這些是2個功能

$.Isotope.prototype._homeMasonryReset = function() { 
    // layout-specific props 
    this.masonry = {}; 
    this._getSegments(); 
    var i = this.masonry.cols; 
    this.masonry.colYs = []; 
    while (i--) { 
     this.masonry.colYs.push(0); 
    } 

    if (this.options.masonry.cornerStampSelector) { 
     var $cornerStamp = this.element.find(this.options.masonry.cornerStampSelector), 
      stampWidth = $cornerStamp.outerWidth(true) - (this.element.width() % this.masonry.columnWidth), 
      cornerCols = Math.ceil(stampWidth/this.masonry.columnWidth), 
      cornerStampHeight = $cornerStamp.outerHeight(true); 
     for (i = Math.max(this.masonry.cols - cornerCols, cornerCols); i < this.masonry.cols; i++) { 
     this.masonry.colYs[i] = cornerStampHeight; 
     } 
    } 
    }; 

    $.Isotope.prototype._homeMasonryResizeChanged = function() { 
    return true; 
    }; 

和同位素呼叫

$container.isotope({ 
     layoutMode: 'homeMasonry', 
    itemSelector: '.item', 
     homeMasonry: {cornerStampSelector: '.corner'} 
    }); 

我已經重建了問題與jsfiddle

http://jsfiddle.net/DQydj/133/

它似乎同位素不喜歡我的重命名。任何人都知道什麼是錯的?

回答

0

除了重命名佈局函數之外,還必須重命名引用原始砌體對象的變量。換句話說,this.masonry必須更改爲this.homeMasonry