我在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>
交叉检查并避免这两件事
-
没有加载多个版本的jQuery,如果"是",则仅使用一个
-
不应该使用jQuery精简版本。