Mam więc dziwny problem, którego nie mogę znaleźć nigdzie indziej, dotyczący masonry.js.Masonry.js nie działa przy obciążeniu. Nie można wywołać 'create' z undefined (Outerlayer) w Wordpressie
Mam the latest (3.10) version a ja go w tym pliku functions.php mojego WordPress jako sposób:
function enqueue()
{
wp_register_script('masonry', get_stylesheet_directory_uri() . '/js/masonry.js', array('jquery'));
wp_enqueue_script('masonry');
}
add_action('wp_enqueue_scripts', 'enqueue');
Które się ładuje grzywny skryptu. Jak jest teraz, nie robię niczegojeszcze z nim, ale skrypt nie udaje:
Uncaught TypeError: Cannot call method 'create' of undefined masonry.js?ver=3.5.2:37
Wydaje się jakby to nie można nazwać tworzyć na window.Outerlayer jak robi istnieje.
Oto kod w pytaniu, zaczynając od linii 34 z masonry.js:
// used for AMD definition and requires
function masonryDefinition(Outlayer, getSize) {
// create an Outlayer layout class
var Masonry = Outlayer.create('masonry');
Masonry.prototype._resetLayout = function() {
this.getSize();
this._getMeasurement('columnWidth', 'outerWidth');
this._getMeasurement('gutter', 'outerWidth');
this.measureColumns();
// reset column Y
var i = this.cols;
this.colYs = [];
while (i--) {
this.colYs.push(0);
}
this.maxY = 0;
};
Próbowałem skolejkowania skrypt w różny sposób, a także pociągnięcie go tylko wtedy, gdy $ (document) .ready() (co, jak sądzę, robi skrypt "enqueue_script"?).
Czy ktoś ma jakieś pomysły na temat problemu lub konfliktu? A może ktoś doświadczył czegoś podobnego?
(używam jQuery 1,83, choć nie powinny wymagać murowane jQuery w zależności od miejsca).
Mam ten sam problem - czy kiedykolwiek rozwiązałeś go? – timshutes
@timshutes Właśnie teraz wygląda na to, że zarówno skrypt, jak i kod zostaną użyte w szablonie bezpośrednio, tzn .: nie z wordpress enqueue_script. Zajmę się tym nieco dalej i zobaczę, czy potrafię zrozumieć, dlaczego to działa. Ale spróbuj na razie. – josh
Grałem z tym na zawsze. Tam jest połączenie na linii 37 (gdzie pojawia się błąd) do funkcji z innej biblioteki. Zamierzam opublikować pełną odpowiedź i zobaczyć, czy to pomaga. – timshutes