How to solve "Uncaught TypeError: Cannot read property of undefined" for slick.js

How to solve "Uncaught TypeError: Cannot read property of undefined" for slick.js

我正在尝试在 Shopify 主题(布鲁克林主题)中进行一些自定义。在这个主题中,有一个文件 theme.js.liquid,他们在其中导入了 slicker:

/*
     _ _      _       _
 ___| (_) ___| | __  (_)___
/ __| | |/ __| |/ /  | / __|
\__ \ | | (__|   < _ | \__ \
|___/_|_|\___|_|\_(_)/ |___/
                   |__/

 Version: 1.8.1
  Author: Ken Wheeler
 Website: http://kenwheeler.github.io
    Docs: http://kenwheeler.github.io/slick
    Repo: http://github.com/kenwheeler/slick
  Issues: http://github.com/kenwheeler/slick/issues

 */

!function(i){"use strict";"function"==typeof define&&define.amd?define(["jquery"],i):"undefined"!=typeof exports?module.exports=i(require("jquery")):i(jQuery)}(function(i){"use strict";var e=window.Slick||{};(e=function(){var e=0;return function(t,o){var s,n=this;n.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:i(t),appendDots:i(t),arrows:!0,asNavFor:null,prevArrow:

我剪掉了行尾,因为它太长了。

然后在 chrome 控制台中,如果我这样做:

$('.slick-slider').slick('slickUnfilter');

它returns:

Uncaught TypeError: Cannot read property 'slickUnfilter' of undefined at n.fn.init.i.fn.slick

而且我在任何灵活的函数(如 'slickFilter'、'slickAdd'、'slickRemove'、...)中都遇到了这个错误。 我搜索了此错误,据我了解,这是因为这些方法已定义但未初始化,或者因为已初始化两次。然而,slicker 是在主题中导入的,应该已经正确完成了。那我该怎么办?

任何帮助将不胜感激。

编辑: 正如所指出的,有 2 个滑块(一个在主页上,一个在另一页上)。当我在 chrome 控制台中编码时,我在另一页上。这就是我得到最后一个错误的原因,因为我猜滑块已经在主页中初始化了。解决方案是给他们不同的名字。

由于 slick-slider class 混淆,Shopify Brooklyn 主题产品页面出现此错误,如果您想要使用名为 slickUnfilter.[=16= 的巧妙功能]

您需要在产品页面上使用单独的 class rath 然后 slick-slider 因为 slick.JS 添加了相同的 class 并且它显示了所有 slick 页面上的实例。

所以像 Brooklyn 主题一样,您需要找到另一个添加到父滑块元素的 class。

你可以使用$('.product-single__media-group').slick('slickUnfilter');,效果很好。

谢谢