2016-10-10 2 views
2

ES6でmasonry-layoutを使用するにはどうすればよいですか?ES6でjQueryとMasonryが動作しませんか?

ES6:

'use strict'; 

import $ from 'jquery'; 
import Masonry from 'masonry-layout'; 

class Grid { 
    loadMasonry() { 
     window.addEventListener("load",() => { 
      $('.grid').masonry({ 
       // options 
       itemSelector: '.grid-item', 
       percentPosition: true, 
       // gutter: 10, 
       // columnWidth: 200 
      }); 
     }); 
    } 
} 

私はこのエラーを持っている:私は、NPMは、以下でそれをインストールしている

Grid.js:9 Uncaught TypeError: (0 , _jquery2.default)(...).masonry is not a function

そのguide

npm install masonry-layout 

なぜ、どのようにこの問題を解決するために、任意のアイデア?

EDIT:

は、これは私がクラスを呼び出す方法です:

import Grid from './Grid'; 

document.addEventListener("DOMContentLoaded", function(event) { 
    var g = new Grid(); 

    g.loadMasonry(); 
}); 
+2

ですから、クラスを作成しました。次は何をしましたか?どこで、いつ、どのようにインスタンス化しましたか? – zerkms

+0

@zerkmsそれは実際にはバニラjsで動作しますが、jqueryでは動作しません。私の上記の編集をご覧ください。ありがとう。 – laukok

答えて

4

jQueryプラグインとしてそれを使用してより多くの設定が必要:あなたはjquery-bridgetライブラリをインストールする必要があります。

はその後、ここにドキュメントページからすべて一緒にそれを結びつける方法についてのサンプルコードは次のとおりです。

var $ = require('jquery'); 
var jQueryBridget = require('jquery-bridget'); 
var Masonry = require('masonry-layout'); 
// make Masonry a jQuery plugin 
jQueryBridget('masonry', Masonry, $); 
// now you can use $().masonry() 
$('.grid').masonry({ 
    columnWidth: 80 
}); 

参考文献:

+0

答えをありがとう。それは今働きます! – laukok

関連する問題