Итак, у меня есть странная проблема, которую я не могу найти нигде, в отношении masonry.js.
У меня есть последняя версия (3.10), и я включаю ее в свой файл functions.php темы wordpress так:
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');
Что загружает тон script. Как и сейчас, я ничего не делаю с этим, но script терпит неудачу:
Uncaught TypeError: Cannot call method 'create' of undefined masonry.js?ver=3.5.2:37
Похоже, он не может вызвать create на window.Outerlayer, поскольку он не существует.
Вот код, о котором идет речь, начиная с строки 34 из 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;
};
Я попытался присвоить script по-разному, а также потянуть его только тогда, когда $(document).ready() (который, я считаю, wordpress 'enqueue_script все равно?).
Итак, есть ли у кого-нибудь идеи, что может быть проблема или конфликт? Или кто-нибудь испытал что-то подобное?
(Я использую jQuery 1.83, хотя для кладки не требуется jquery в соответствии с сайтом.)