2

1 つのページで複数のアイソトープ インスタンスを使用したいと考えています。これらのインスタンスの 1 つはコーナー スタンプですが、他のインスタンスは通常の「石工」のものです。

コーナースタンプを新しい名前に変更したい - homeMasonry

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/

同位体は私の名前の変更を気に入らなかったようです。誰が何が悪いのか知っていますか?

4

1 に答える 1

0

レイアウト関数の名前を変更することに加えて、元の石積みオブジェクトを参照する変数の名前も変更する必要があります。つまりthis.masonry、に変更する必要がありthis.homeMasonryます。

于 2013-03-14T01:22:28.930 に答える