ajax呼び出しが成功した後に呼び出しているときに、滑らかでないメソッドが機能しない理由を解明しようとしています。この投稿を読んでslick-initialized
クラスを探していますが、まだエラーが発生しています
TypeError: .$slides is null if ( .$slides.parent().hasClass('slick-track'))
HTML
<div id="skills" class="skills_section">
<div>Slide 1</div>
<div>Slide 2</div>
<div>Slide 3</div>
</div>
ページの読み込み時にスリックを初期化すると、マークアップは次のようになります。
<div id="skills" class="skills_section slick-initialized slick-slider">
<div class="slick-list draggable">
<div class="slick-track">
<div class="slick-slide slick-cloned">Slide 1</div>
<div class="slick-slide slick-cloned">Slide 2</div>
<div class="slick-slide slick-cloned">Slide 3</div>
</div>
</div>
</div>
それぞれのデータを置き換えるだけのajax呼び出しがありますslick-slide
$.ajax({
type: 'get',
url: '/public/index',
dataType: 'script',
data: data_send,
success: function(data) {
unSlickCarousel();
slickCarousel();
}
});
機能
function slickCarousel() {
$('.skills_section').slick({
infinite: true,
slidesToShow: 3,
slidesToScroll: 1
});
}
function unSlickCarousel() {
if($('#skills').hasClass('slick-initialized')){
$('.skills_section').unslick();
}
}
しかし、私が述べたように、エラーが発生し、HTML マークアップは次のようになります
<div id="skills" class="skills_section slick-initialized slick-slider">
<div>Slide 1</div>
<div>Slide 2</div>
<div>Slide 3</div>
</div>