gpt4 book ai didi

javascript - Masonry.js 加载失败。无法在 Wordpress 中调用未定义(外层)的 'create'

转载 作者:可可西里 更新时间:2023-11-01 01:37:19 27 4
gpt4 key购买 nike

所以关于 masonry.js,我遇到了一个似乎在其他任何地方都找不到的奇怪问题。

我有 the latest (3.10) version我将它包含在我的 wordpress 主题的 functions.php 文件中:

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');

正在加载脚本。就像现在一样,我没有用它做任何任何,但脚本失败了:

Uncaught TypeError: Cannot call method 'create' of undefined masonry.js?ver=3.5.2:37

似乎它无法在 window.Outerlayer 上调用创建,因为它不存在。

这是有问题的代码,从 masonry.js 的第 34 行开始:

// 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;
};

我尝试过以不同的方式将脚本加入队列,以及仅在 $(document).ready() 时将其拉入队列(我相信 wordpress 的 enqueue_script 无论如何都会这样做?)。

那么,有人知道这里可能存在什么问题或冲突吗?或者有没有人经历过类似的事情?

(我使用的是 jQuery 1.83,但根据网站,masonry 不需要 jquery。)

最佳答案

我确实遇到了这个问题。我的猜测是您只使用来自 github 的原始 masonry.js 文件。此版本的砌体需要一些其他插件才能正常工作。

具体来说,您收到此错误是因为您没有 Outlayer安装。如果您只是想启动和运行砌体,您应该从 masonry website here. 获取完整的生产包。它包括必要的插件。

希望这对您有所帮助!

关于javascript - Masonry.js 加载失败。无法在 Wordpress 中调用未定义(外层)的 'create',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17992216/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com