2017-12-19 9 views
1

Dies ist eine ähnliche Frage zu der here. Ich versuche, mein glattes Karussell nach dem erfolgreichen Ajax-Anruf zu arbeiten. Versuchte jede Lösung dort, aber es scheint immer noch nicht für mich zu arbeiten.Slick funktioniert nicht nach Ajax-Aufruf

.reviews-Seite-Karussell Slick

$('.reviews-page-carousel').slick({ 
    arrows: false, 
    slidesToShow: 1, 
    variableWidth: true, 
    centerPadding: '10px' 
}); 

Ajax-Aufruf

$.ajax({ 
    type: "GET", 
    url: review_url + "?page=" + page, 
    success: function(result) { 
     $('.reviews-page-carousel').slick('unslick').slick('reinit'); 
    } 
}) 

diese

auch Versuchte
$.ajax({ 
    type: "GET", 
    url: review_url + "?page=" + page, 
    success: function(result) { 
     $('.reviews-page-carousel').slick('unslick'); /* ONLY remove the classes and handlers added on initialize */ 
     $('.reviews-page-carousel').slick(getSliderSettings()); /* Initialize the slick again */ 
    } 
}); 

Beide diesen Fehler gibt:

Uncaught Typeerror: Kann nicht Eigenschaft 'unslick' von undefined lesen

+0

Versuchen $ mit unslick() ('Bewertungen-Seite-Karussell..'); statt $ ('. reviews-page-carousel'). slick ('unslick'); –

+0

@DeepakKumarTP Fehler: Uncaught TypeError: $ (...) .slick ist keine Funktion – Jason

+0

$ ('. Bewertungen-Seite-Karussell'). Slick ('unslick'); Diese Zeile entfernen check https://stackoverflow.com/questions/36852761/slick-jquery-typeerror-cannot-read-property-unslick-of-undefined –

Antwort

0

Nach dem Aufruf einer Anfrage, setze den Timeout um den Slick Slider zu initialisieren.

var options = { 
    arrows: false, 
    slidesToShow: 1, 
    variableWidth: true, 
    centerPadding: '10px' 
} 

$.ajax({ 
    type: "GET", 
    url: review_url+"?page="+page, 
    success: function(result){ 
     setTimeout(function() { 
      $(".reviews-page-carousel").slick(options) 
     }, 500); 
    } 
}) 

Update: Gleiten Sie den Slick-Slider nicht beim Start ein. Einfach nach einem Ajax mit Timeout initialisieren. Das sollte für dich funktionieren.

+0

Versuchte dies und erhielt diesen Fehler: Uncaught TypeError: Kann Eigenschaft 'add' von Null nicht lesen – Jason

+0

Schauen Sie das Update oben und versuchen Sie das :) .. Und initialisieren Sie slick nicht am Anfang. Einfach initialisieren, nachdem eine Ajax-Anfrage angefordert wurde. –

+0

Hat den gleichen Fehler. Übrigens scheint es einen Syntaxfehler zu geben – Jason

0

Lösung

var options = { 
    arrows: false, 
    slidesToShow: 1, 
    variableWidth: true, 
    centerPadding: '10px' 
} 

Ajax

$.ajax({ 
     type: "GET", 
     url: review_url+"?page="+page, 
     success: function(result){ 

      setTimeout(function() { 
       $(".reviews-page-carousel").not('.slick-initialized').slick(options) 
      }, 500);