未捕获的类型错误: jQuery(..).slick不是Wordpress自定义模板中的功能



我在Wordpress中制作自定义模板。我曾经为WordPress安装插件Post Carousel - Post Grid,Filter & Masonry,并在页面上添加简码。但是我经常收到一个错误,结果js坏了,轮播不起作用。简码在Wordpress页面构建器中有效工作。
错误:

jquery-3.5.1.min.js:2 jQuery.Deferred exception: jQuery(...).slick is not a function TypeError: jQuery(...).slick is not a function
at HTMLDocument.<anonymous> (http://test/magnetic-one-template-page/:274:37)
at e (https://code.jquery.com/jquery-3.5.1.min.js:2:30005)
at t (https://code.jquery.com/jquery-3.5.1.min.js:2:30307) undefined
S.Deferred.exceptionHook @ jquery-3.5.1.min.js:2
t @ jquery-3.5.1.min.js:2
setTimeout (async)
(anonymous) @ jquery-3.5.1.min.js:2
c @ jquery-3.5.1.min.js:2
fireWith @ jquery-3.5.1.min.js:2
fire @ jquery-3.5.1.min.js:2
c @ jquery-3.5.1.min.js:2
fireWith @ jquery-3.5.1.min.js:2
ready @ jquery-3.5.1.min.js:2
B @ jquery-3.5.1.min.js:2

这是我的脚本

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<link href="https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,600;0,700;0,800;1,300;1,400;1,600;1,700;1,800&display=swap" rel="stylesheet">
<link rel="stylesheet" href="<?php echo get_theme_file_uri( '/assets/css/code_test-style.css' ); ?>">
<script src="https://kit.fontawesome.com/71fcadc668.js" crossorigin="anonymous"></script>
<script src="https://npmcdn.com/flickity@2/dist/flickity.pkgd.js"></script>
<script
src="https://code.jquery.com/jquery-3.5.1.min.js"
integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="
crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://npmcdn.com/flickity@2/dist/flickity.css">

在关闭身体标签之前

<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>

有什么想法吗?

可能你必须先初始化光滑:

$('.your-slider').slick({
infinite: true,
slidesToShow: 3,
slidesToScroll: 3
});

更多参考: https://kenwheeler.github.io/slick/

如果问题仍然存在,请尝试将初始化包装在 jquery 文档中 ready:

jQuery(function($) {
jQuery(document).ready(function(){  
$('.your-slider').slick({
infinite: true,
slidesToShow: 3,
slidesToScroll: 3
});
}); 
});

另外,尝试将光滑的 cdn 移动到标题,看起来 .slick 函数找不到库。

<script type="text/javascript" src="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js"></script>

交叉检查并避免这两件事

  1. 没有加载多个版本的jQuery,如果"是",则仅使用一个

  2. 不应该使用jQuery精简版本。

最新更新