Javascript 砌体结构在荷载作用下发生破坏。无法调用';创建';Wordpress中未定义(外层)的

Javascript 砌体结构在荷载作用下发生破坏。无法调用';创建';Wordpress中未定义(外层)的,javascript,wordpress,wordpress-theming,jquery-masonry,Javascript,Wordpress,Wordpress Theming,Jquery Masonry,所以我遇到了一个奇怪的问题,我在其他任何地方都找不到,关于massy.js 我已经得到并将其包含在我的wordpress主题的functions.php文件中,如下所示: function enqueue () { wp_register_script( 'masonry', get_stylesheet_directory_uri() . '/js/masonry.js', array( 'jquery' ) ); wp_enqueue_script( 'masonry' );

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

我已经得到并将其包含在我的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上调用create,因为它不存在

下面是有问题的代码,从massy.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_脚本也会这样做?)

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


(我使用的是jQuery 1.83,不过根据网站的情况,砖石工程不需要jQuery。)

我遇到了这个问题。我猜您使用的只是来自github的raw massy.js文件。这个版本的Mashise需要一些其他插件才能正常工作

具体地说,您得到这个错误是因为您没有安装。如果您只是想启动并运行Mashine,那么应该从中获取完整的生产包,其中包括必要的插件


希望这有帮助

我也遇到了同样的问题-你解决过吗?@timshutes刚才实际上,如果你在模板中同时包含脚本和代码来直接执行它,它似乎是有效的,即:不使用wordpress enqueue_脚本。我将进一步研究这一点,看看我是否能弄明白为什么会这样。但是现在就试试吧,我一直玩这个。在第37行有一个调用(在那里您得到错误)来自不同库的函数。我将发布一个完整的答案,看看这是否有帮助。这就是发生的事情。谢谢,我也是。谢谢