Swiper.js within ajax-loaded content only works once window is resized

I did have this working, but it's since broken (probably off the back of a change i made) an i've got no idea where the problem is coming from. Any help would be much appreciated.

When you click on an item in the 'shop' section of this site the content loads in a sliding drawer. At the top of this content is a slider which uses the Swiper.js library to function. At the moment it doesn't work BUT if you resize the window it springs back into life.

The code i'm using for the ajax is this:

// ajax
    $(document).ready(function(){
      $.ajaxSetup({cache:false});
      $(".post-link").click(function(){
      var post_link = $(this).attr("href");
      $("#project-content").hide().load(post_link).delay(750).fadeIn(400);
      return false;
    });
});

And to initialise the swiper is this:

// after ajax
    $(document).ajaxComplete(function () {
        var swiper1 = new Swiper('.s2', {
        loop: true,
        lazy: true,
        navigation: {
        nextEl: '.swiper-button-next',
        prevEl: '.swiper-button-prev',
        },
        });
    });

I'd had this working before but am unable to back-track. Any assistance would be really helpful in explaining why this only works once the window is resized.

Thanks!