2013-02-10 93 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