【发布时间】:2017-08-15 09:35:03
【问题描述】:
当幻灯片被拖动时,我试图将“slick active”类添加到 a 标签。该类在单击时应用,但无法弄清楚如何将其应用到另一个!
我们将不胜感激任何破译我的代码的帮助!
JS
$(document).ready(function() {
var $slideshow = $(".slider").slick({
dots: false,
infinite: true,
speed: 300,
slidesToShow: 1,
adaptiveHeight: true,
swipeToSlide: true,
touchThreshold: 3,
arrows: false
});
$('.links').on('click', 'a', function( e ) {
var slideIndex = $(this).closest('li').index();
$slideshow.slick( 'slickGoTo', parseInt( slideIndex ) );
$('.links li a').removeClass('slick-current');
$(this).addClass('slick-current');
e.preventDefault();
});
$('.slider').on('afterChange', function(event,slick,i) {
$('.links li a .slick-slide').removeClass('slick-current');
$('.links li a .slick-slide').eq(i).addClass('slick-current');
});
$('.links li a .slick-slide').eq(0).addClass('slick-current');
});
HTML
<div class="large-3 columns page-content-left">
<ul class="links">
<li><a href="#">slide1</a></li>
<li><a href="#">slide2</a></li>
<li><a href="#">slide3</a></li>
</ul>
</div>
<div id="" class="large-9 columns page-content-right">
<section class="slider" id="slider1">
<div class="slide">
</div>
<div class="slide">
</div>
<div class="slide">
</div>
</section>
</div>
【问题讨论】:
-
根据kenwheeler.github.io/slick,
afterChange事件有 3 个参数:slick、currentSlide和nextSlide。您正在使用 event、slick 和 i。也许您在eq()中使用了一些无效数据?我猜你必须做$(currentSlide).addClass('slick-current'),但我还没有测试过。
标签: javascript jquery html slick.js