RequireJS newbie qui. Cercando di convertire un codice JQuery, ho lavorato bene nel vecchio modo di lavorare con RequireJS.requireJS con JQuery, Masonry e ImagesLoaded: oggetto [oggetto oggetto] non ha alcun metodo 'imagesLoaded'
L'intestazione della mia pagina carica tre file JS tramite tag di script - require.js stesso, my require.cfg.js e boot/main.js con la funzionalità specifica del sito.
require.cfg.js rilevanti estratto:
,paths: {
'boot': 'src/boot'
,'jquery': 'lib/jquery.min'
,'jquery.masonry': 'lib/plugins/masonry.pkgd.min'
,'jquery.imagesloaded': 'lib/plugins/imagesloaded.pkgd.min'
}
,shim: {
'jquery': {
exports: 'jQuery'
}
,'jquery.masonry': ['jquery']
,'jquery.imagesloaded': ['jquery']
}
di avvio/main.js:
require([
'jquery',
'jquery.masonry',
'jquery.imagesloaded',
], function($) {
// The following code worked just fine when I included it in the header of the page as-is
$(function() {
var $container = $('#container');
// This doesn't work
$container.imagesLoaded(function() {
// Neither does this
$('#container').masonry({itemSelector : '.item',});
});
});
});
posso confermare che tutti questi file JS sono stati trovati e caricati dal browser. E confermo che se faccio:
require([
'jquery',
'jquery.masonry',
'jquery.imagesloaded',
], function($, Masonry, ImagesLoad) {
la Massoneria e ImagesLoaded variabili siano impostate correttamente .... ma io non voglio procedere w/o jQuery
Ma quando provo a chiamare. imagesLoaded() e .masonry() sull'oggetto contenitore di JQuery, ottengo:
TypeError Uncaught: Object [object Object] non ha un metodo 'imagesLoaded'
e se io commento la linea imagesLoaded, Ottengo:
Uncaught TypeError: Object [object Object] non ha un metodo 'muratura'
Non sei sicuro di quello che sto facendo male qui ...? Da quanto ho letto in altre domande StackOverflow, il codice mi sembra corretto ...?
Grazie!
Aggiornamento:
Se io uso questo codice il modo non JQuery in questo modo, funziona:
var container = document.querySelector('#container');
imagesLoaded(container, function() {
var msnry = new Masonry(container, {
itemSelector: '.item',
});
});
qualsiasi posizione di prova in cui è già in esecuzione? – AdityaSaxena
Ummm, localmente. :-) Metterò qualcosa insieme ... – TAH
Si prega di consultare http://reliqry.com/test/. Ho provato a spogliare tutte le cose estranee ... possibile ho introdotto qualche altro errore nel farlo ... Grazie per dare un'occhiata! – TAH