jquery - iDangerous Swiper, subsequent destroy() and reInit() methods -
according directions provided answer here...
idangerous swiper plugin reset slides
i'm trying this:
http://jsfiddle.net/monastic/ydkn2/17/
<div id="slide-repo"> <div class="swiper-slide"> <img src="http://dummyimage.com/100x100/000/fff.jpg" /> </div> ................... </div> <div> <button id="update-slides">update slides</button> </div> <div class="swiper-container"> <div class="swiper-wrapper"> <div class="swiper-slide"> <img src="http://dummyimage.com/100x100/ff0000/fff.jpg" /> </div> ................. </div> </div> var myswiper = new swiper('.swiper-container', { mode: 'vertical', loop: true, loopadditionalslides: 5, centeredslides: true, slidesperview: 2, initialslide: 0, }); $('button#update-slides').on('click', function(){ var swiperwrapper = $('.swiper-wrapper'), newslides = $('#slide-repo').children('.swiper-slide').clone(true); myswiper.destroy(); swiperwrapper.empty().append(newslides); $('.swiper-wrapper').attr('style', ''); myswiper.reinit(); }); but console returning 'cannot read property 'init' of null'.
any suggestions?
i believe because you're calling myswiper.destroy() , therefore can't run reinit(). documentation says reinit resetting when you've added or removed slides. here you're calling reinit on element no longer swiper.
instead, re-create swiper each time. (i'm not sure why calling removeallslides reinit not keep same settings.)
var settings = { mode: 'vertical', loop: true, loopadditionalslides: 5, centeredslides: true, slidesperview: 2, initialslide: 0, }, myswiper = new swiper('.swiper-container', settings); $('button#update-slides').on('click', function(){ var swiperwrapper = $('.swiper-wrapper'), newslides = $('#slide-repo').children('.swiper-slide').clone(true); myswiper.destroy(); swiperwrapper.empty().append(newslides); $('.swiper-wrapper').attr('style', ''); myswiper = new swiper('.swiper-container', settings); }); fiddle: http://jsfiddle.net/l2hjk/2/
Comments
Post a Comment