javascript - 在没有过滤的页面上进行 mixitup 过滤时出错

标签 javascript jquery mixitup

在我的主页上,我使用了 mixitup:

var containerEl = document.querySelector('.gallery-container');
    var mixer = mixitup(containerEl, {
        selectors: {
            control: '[data-mixitup-control]'
        },
        load: {
            filter: '.engagement-ceremony'
        }
    });

我从他们的网站上得到了这个。它工作正常,但是当我转到另一个页面时,我在控制台中收到此错误: Uncaught Error :[MixItUp] 将无效的选择器或元素引用传递给了 mixitup 工厂函数,它导致我在页面上的其他 js 中断。

我想我会试试这个,看看会发生什么:

var mixer = mixitup('.gallery-container', {
        selectors: {
            control: '[data-mixitup-control]'
        },
        load: {
            filter: '.engagement-ceremony'
        }
    });

但后来我得到了这个错误:Uncaught Error: [MixItUp] The provided selector yielded no container element

我很困惑为什么会这样出错。

编辑 因此,唯一能让它正常工作而没有错误的方法是使用 mixitup 脚本的这一部分并使用 php 有条件地将其加载到我的主页上。一个困扰我的骇人听闻的修复程序,但这是唯一可行的方法。

最佳答案

// Gallery Filtering
    var containerEl = document.querySelector('.gallery-container');
    var mixer;

    if (containerEl) {
        mixer = mixitup(containerEl, {
             selectors: {
                 control: '[data-mixitup-control]'
             },
             load: {
                 filter: '.engagement-ceremony'
             }
        });
    }

我必须将脚本包装在 if 语句中。

关于javascript - 在没有过滤的页面上进行 mixitup 过滤时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45145190/

相关文章:

javascript - 单击清除文本框

javascript - Google Maps API v3 选择信息窗口作为 jquery DOM 对象

javascript - SlickGrid 需要一个有效的容器,#myGrid 在 DOM 中不存在

javascript - 无限滚动::mixitup::json和ajax控制

javascript - 加载表单,div 内不执行任何操作

javascript - 在同一路由内调用操作方法

JavaScript 点

javascript - 创建一个带有名为 offset 的属性的 anchor