【问题标题】:Wordpress - Changing when masonry is firedWordpress - 砌体被解雇时的变化
【发布时间】:2014-05-20 10:41:14
【问题描述】:

我有点傻,想知道你能帮忙。

我有一个名为“推荐”的自定义帖子类型。我有一个页面显示这些帖子。我想使用 masonry(现在捆绑在 Wordpress 中)来处理我拥有的 2 列布局。

我通过this tutorial 工作,但它涉及图像,而我没有。

我有这个代码

<script>
  //set the container that Masonry will be inside of in a var
  var container = document.querySelector('.testimonial-boxes');
  //create empty var msnry
  var msnry;
  // initialize Masonry after all images have loaded
  imagesLoaded( container, function() {
      msnry = new Masonry( container, {
          itemSelector: '.testimonial-box'
      });
  });
</script>

在浏览器控制台我有这个错误Uncaught ReferenceError: imagesLoaded is not defined

如何调整上面的代码不等待图像加载?

谢谢

[更新]

我将脚本放在它自己的 .js 文件中,并在我的functions.php 中使用wp_enqueue_script 导入脚本,如下所示。

wp_enqueue_script('testimonial-masonry', get_stylesheet_directory_uri().'/js/testimonial-masonry.js', array( 'masonry' ), '1.0', true );

【问题讨论】:

    标签: wordpress custom-post-type masonry


    【解决方案1】:

    如果您只是想删除 imagesLoaded() 函数 - 您的代码应如下所示

    <script>
    
      //set the container that Masonry will be inside of in a var
      var container = document.querySelector('.testimonial-boxes');
      //create empty var msnry
      var msnry;
    
      // initialize Masonry
      msnry = new Masonry( container, {
        itemSelector: '.testimonial-box'
      });
    
    </script>
    

    imagesLoaded() 函数在完成块内进行了砌体初始化 - function(){ ... } 所以您需要做的就是删除它以及它周围的所有东西。

    更新:通过将函数调用移到砌体包含之后解决了该错误。

    【讨论】:

    • 嗨,Wezly,我也这么认为,但是当我将其更改为时,我收到以下错误 Uncaught ReferenceError: Masonry is not defined。 Masonry 是否必须声明为var? masonry js 文件被拉到页脚。
    • 您需要在脚本运行之前包含 masonry.js - 将其放在标题中或将您的脚本移动到包含下方。
    • 是的,我将代码放在一个单独的 js 文件中,并使用 wp_enqueue_script 将其拉入依赖于 masonry。现在工作正常。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-29
    • 1970-01-01
    • 2013-03-25
    • 2018-11-04
    相关资源
    最近更新 更多