7

slick.js http://kenwheeler.github.io/slick/を使用していくつかのスライドを実行していますが、最後のスライドはアラートを切り替える必要があります。

オンラインでいろいろ調べて、これがスライドの数をハードコーディングしなくても機能することを認識した後 (そして、この解決策を見た: Slick carousel. Want autoplay to play the slides once and stop )、次のコードを取得しました。

$(document).ready(function(){
          var item_length = $('.slider > div').length - 1;
          $('.slider').slick({
            appendArrows : '.arrow-holder',
            adaptiveHeight : true,
            infinite : false,
            onAfterChange: function(){
                if( item_length == slider.slickCurrentSlide() ){
                    alert("Slide 2");
                };
            }
          }); 
        });

残念ながら、最後のスライドに到達しても何も起こりません。また、ゼロのインデックスを考慮しても、最後の数字をハードコードしても、そうではないようです。

コンソールにエラーや警告が表示されていないため、問題を解決する方法を見つけるのに苦労しています。

4

4 に答える 4

11

未来から来た人のために、API が変更されました。これは私が今使っているものです:

$(this).on('afterChange', function(event, slick, currentSlide) {
  console.log(slick, currentSlide);
  if (slick.$slides.length-1 == currentSlide) {
    console.log("Last slide");
  }
})

注:thisセレクターなどに置き換えることができます.slider

于 2017-09-08T13:30:47.370 に答える