【发布时间】: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