#javascript #jquery #html #web #slick.js
#javascript #jquery #HTML #веб #slick.js
Вопрос:
Я хочу создать три карусели:
$(document).ready(function() {
$('#c1').slick({
dots: true,
slidesToShow: 1,
slidesToScroll: 1,
autoplay: true,
autoplaySpeed: 7 * 1000,
mobileFirst: true,
arrows: true
});
$('#c2').slick({
dots: false,
slidesToShow: 1,
slidesToScroll: 1,
autoplay: true,
autoplaySpeed: 7 * 1000,
mobileFirst: true,
arrows: false
});
$('#c3').slick({
dots: false,
slidesToShow: 1,
slidesToScroll: 1,
autoplay: true,
autoplaySpeed: 7 * 1000,
mobileFirst: true,
arrows: false
});
});
Но когда я выполняю этот код, появляется это сообщение об ошибке:
slick.min.js:17 Uncaught TypeError: Cannot read property 'add' of null
Я также пробовал это здесь:
.not('.slick-initialized').slick()
Тогда он не выдает ошибку, но создается только первая карусель.
У вас, ребята, есть какие-нибудь идеи? Спасибо за продвижение.
Ответ №1:
Похоже, slickslider не может найти нужный ему объект. Убедитесь, что ваши идентификаторы (c1, c2, c3) существуют в вашем коде.
С официальной страницы slickslider (http://kenwheeler.github.io/slick /):
<html>
<head>
<title>My Now Amazing Webpage</title>
<link rel="stylesheet" type="text/css" href="slick/slick.css"/>
<link rel="stylesheet" type="text/css" href="slick/slick-theme.css"/>
</head>
<body>
<div class="your-class">
<div>your content</div>
<div>your content</div>
<div>your content</div>
</div>
<script type="text/javascript" src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script type="text/javascript" src="slick/slick.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.your-class').slick({
setting-name: setting-value
});
});
</script>
</body>
</html>
Убедитесь, что вы не вызываете функцию slick() дважды для одного и того же элемента.
Комментарии:
1. Спасибо за ваш ответ! Я проверил свои переменные и увидел, что обе переменные генерируют один и тот же идентификатор… Теперь это работает, СПАСИБО!
Ответ №2:
Я предложу другое решение с одним классом или идентификатором, если наши настройки одинаковы для каждой карусели, которую мы хотим использовать:
$(document).ready(function(){
var myCarousel = $(".carousel");
myCarousel.each(function() {
$(this).slick({
dots: false,
slidesToShow: 1,
slidesToScroll: 1,
autoplay: true,
autoplaySpeed: 7 * 1000,
mobileFirst: true,
arrows: false
});
});
});