【问题标题】:Only initialise masonry if script is loaded仅在加载脚本时才初始化砌体
【发布时间】:2016-12-07 10:06:06
【问题描述】:

在我的 wordpress 脚本中,我使用条件语句仅将 masonry 脚本排入某些页面。我还有一个全局 javascript 部分,它加载到包含脚本以激活砌体功能的所有页面上:

$container.masonry({
  itemSelector: '.img-container',
  gutter: ".gutter-sizer"
});

当页面上加载主砌体脚本时,这可以正常工作,但如果未加载,则会引发 undefined is not a function 错误。在执行上述代码之前,如何检查是否加载了砌体?我认为这将以相同的方式适用于大多数 jQuery 插件和其他 js 脚本。

【问题讨论】:

    标签: javascript jquery jquery-masonry


    【解决方案1】:
    if ($.fn.masonry) {
        //...
    }
    

    但是我真的不喜欢这种条件。您还应该确保仅在真正需要时才加载使用该库的脚本。

    【讨论】:

      【解决方案2】:

      砌体defines a global 所以你可以简单地做:

      if (window.Masonry) {
        // Masonry has been loaded
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-19
        • 1970-01-01
        • 1970-01-01
        • 2020-09-14
        • 1970-01-01
        相关资源
        最近更新 更多