2016-09-16 130 views
1

我正在使用Ken Wheeler的Slick並希望在用戶單擊slick-prev或slick-next或將傳送帶向左或向右拖動時將false設置爲false。如何停止單擊並拖動Slick Slider自動播放

slick = $('.slick').slick({ 
     slidesToShow: 3, 
     slidesToScroll: 2, 
     autoplay: true, 
     autoplaySpeed: 2500, 
     dots: false, 
     }); 

我嘗試以下

$('.slick-prev, .slick-next').on('click', function(){ 
     slick.slickSetOption('autoplay', false, false); 
}); 

而且

$('.slick-prev, .slick-next').on('click', function(){ 
     $(slider).slick('slickSetOption', 'autoplay', false, false); 
    }); 

兩人都沒有工作,我不知道如何尋找一個可拖動事件。

+0

您是否想在某些事件後將'autoplay'回到'true'? –

+0

不,我希望它保持虛假 – Bart

+0

我更新了我的答案,如果您之前檢查過,請重新檢查。 –

回答

2

更新

您需要使用slickSetOption象下面這樣:

HTML

<div class="my-slick"> 
    <div>Box 1</div> 
    <div>Box 2</div> 
    <div>Box 3</div> 
    <div>Box 4</div> 
</div> 

JS

var slickOptions = { 
     autoplay: true, 
     // rest of options 
    }, 
    $slick = $('.my-slick'); 

$slick.slick(slickOptions); 

// built-in feature, for more info check the [doc](http://kenwheeler.github.io/slick/) 
$slick.on('swipe', function(event, slick, direction) { 
    reinitSlick(); 
}); 

$('.slick-prev, .slick-next').on('click', function(){ 
    reinitSlick(); 
}); 

var reinitSlick = function() {  
    $slick.slick('slickSetOption', { 
     'autoplay': false 
    }, false); 
} 

Codepen