【问题标题】:How to solve "Uncaught TypeError: Cannot read property of undefined" for slick.js如何解决 slick.js 的“未捕获的类型错误:无法读取未定义的属性”
【发布时间】:2020-12-30 16:58:47
【问题描述】:

我正在尝试在 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');

返回:

未捕获的类型错误:无法读取 n.fn.init.i.fn.slick 处未定义的属性“slickUnfilter”

对于任何 slick 函数(如“slickFilter”、“slickAdd”、“slickRemove”...),我都会收到此错误。 我搜索了这个错误,据我了解,这是因为这些方法已定义但未初始化,或者因为有两次初始化。然而,滑头是在主题中导入的,它应该已经正确完成。那我该怎么办?

任何帮助将不胜感激。

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

【问题讨论】:

  • 你有两个版本的 jQuery 吗?
  • 我不认为。主题应该只导入一次。
  • 你需要检查其他问题和冲突,它在最新版本prnt.sc/wd58n1上运行良好
  • 确实,当我在主页上的英雄横幅中这样做时(就像你一样),没有错误。但是,当我尝试从移动版本的产品页面执行此操作(因此出现滑块)时,出现错误。无论如何,很高兴知道主页中的滑块没有错误。
  • 我已经检查了产品页面并发现了这些东西,它适用于产品页面上的$('.product-single__media-group').slick('slickUnfilter');,我已经检查过,这是由于第二个滑块初始化用于在同一页面上导航和slick-slider 产生错误。

标签: javascript shopify slick.js


【解决方案1】:

由于slick-slider 类混淆,Shopify 布鲁克林主题产品页面出现此错误,如果您想要调用 slickUnfilter 的巧妙功能。

您需要在产品页面上使用单独的类而不是slick-slider,因为slick.JS 添加了相同的类,它会在页面上显示所有slick 实例。

所以像布鲁克林主题一样,您需要找到另一个添加到父滑块元素的类。

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

谢谢

【讨论】:

  • 太棒了!我在这个问题上卡了这么久。
  • 不过,现在这会破坏桌面视图上的网站。
猜你喜欢
  • 2018-04-14
  • 2017-08-02
  • 1970-01-01
  • 2021-12-22
  • 2015-01-06
  • 2017-07-26
  • 2021-05-10
  • 2020-09-28
相关资源
最近更新 更多