I fixed my code in my EDIT, but here's the copy of it:
I made a function to initialize the slider, another to try and destroy the slider, another for reloading the slider. Then in my JS function, I just destroy, init, reload to make sure it's all working... this could probably be refactored a lot more than what I have right now but it seems to work well for me:
global_product.prototype.slider = function(elem, type, pause_time) {
var slider_elem = $(elem);
if(typeof(slider_elem) === 'undefined') {
return false;
}
slider_elem.show();
if(typeof(slider_elem.getSlideCount) !== 'function') {
if(type === 'large') {
slider_elem.bxSlider({
mode: 'fade',
controls: false,
pager: false,
caption: false,
slideWidth: 1080,
responsive: true,
speed: 700,
pause: pause_time,
auto: true
});
} else {
slider_elem.bxSlider({
mode: 'fade',
controls: false,
pager: false,
caption: false,
slideWidth: 540,
responsive: true,
speed: 700,
pause: pause_time,
auto: true
});
}
return slider_elem;
} else {
slider_elem.destroySlider();
}
return false;
};
global_product.prototype.sliderDestroy = function(elem) {
var destroy_elem = $(elem);
if(typeof(destroy_elem) === 'undefined') {
return false;
}
if(typeof(destroy_elem.destroySlider) === 'function') {
destroy_elem.destroySlider();
}
};
global_product.prototype.reloadSlider = function(elem) {
var reload_elem = $(elem);
if(typeof(reload_elem) === 'undefined') {
return false;
}
if(typeof(reload_elem.reloadSlider) === 'function') {
reload_elem.reloadSlider();
}
};
Which works with:
global_product.prototype.slider_ajax = function(page) {
banner1 = this.sliderDestroy('#page_banner1');
banner2 = this.sliderDestroy('#page_banner2');
banner_full = this.sliderDestroy('#page_banner_full');
$.ajax({
async: true,
type: 'GET',
url: page,
success: $.proxy(function(data)
{
$('#partners').html(data);
banner_banner1 = this.slider('#page_banner1', '', 7500);
banner_banner2 = this.slider('#page_banner2', '', 9500);
banner_full = this.slider('#page_banner_full', 'large', 7500);
}, this)
});
this.reloadSlider('#page_banner1');
this.reloadSlider('#page_banner2');
this.reloadSlider('#page_banner_full');
};