I know, this was asked several times on SO (eg here), but nothing worked for me.
I have a JSON Import via ajax. This imports data for a slick slider. So the slick slider should be initialized after the ajax import finished.
My Code:
  // Import Ticker
  $.ajax({
      url: '/de/data/data.json',
      type: 'GET',
      datatype: 'json'
  }).success(function (data) {
      for (var i = 0; i < data.length; i++) {
          var obj = data[i];
          $('section.ticker .slider').append(`
            <div class="slide">1</div>
            <div class="slide">2</div>
            <div class="slide">3</div>
          `)};
      $(document).on('ready', function() {
        $('.slider').slick({
            infinite: true,
            slidesToShow: 3,
            slidesToScroll: 3
        });
      });
      // Error handler
      }).error(function (err) {
          console.log(err);
      })
I also tried:
  }).success(function (data) {
      for (var i = 0; i < data.length; i++) {
          var obj = data[i];
          $('section.ticker .slider').append(`
            <div class="slide">1</div>
            ...
          `)};
      }.complete: function (data) {
        $('.slider').slick({
          infinite: ...
        });
      }).error(function (err) {
          console.log(err);
      })
Or this:
$( document ).ajaxStop(function() {
  $('.slider').slick({
     infinite: ...
  });
});
 
    