slider-pro icon indicating copy to clipboard operation
slider-pro copied to clipboard

Resize can continue to work, even after slider is destroyed.

Open dobromir-hristov opened this issue 5 years ago • 2 comments

I am using the slider in an SPA and I got allot of errors from mobile Chrome. Turns out the resize listener can get triggered, just before I destroy the slider when navigating away from a page. That causes the slider to error out as there is a 200ms debounce on that event, which gets called after the slider is not in the DOM.

@davidghi do you think it is OK to add a check on those throttled callbacks, to see if the instance is not destroyed, elements are in the DOM and what knot?

dobromir-hristov avatar Aug 14 '19 06:08 dobromir-hristov

Hi. Sorry for the late reply! I will try to implement a fix for this issue in the next update. For now, a fix could be to create a custom destroy function which clears the 'resize' timer first and then call's the slider's 'destroy' method. For example:

function customDestroy() {
    var $slider = jQuery( '.slider-pro' ),
          sliderId = $slider.data( 'sliderPro' ).uniqueId;

    $( window ).off( 'resize.' + sliderId );
    
    setTimeout( function() {
        $slider.sliderPro( 'destroy' );
    }, 200 );
}

Best, David

davidghi avatar Sep 04 '19 13:09 davidghi

Hah I did not think of that... Will give it a try.

dobromir-hristov avatar Sep 04 '19 13:09 dobromir-hristov