何かと便利なbxsliderですが、タブ切り替えやポップアップなど、表示、非表示が絡むと、スライドが動かなくなったり、画像が表示されなくなってしまうため、「パブリックメソッド」である「reloadSlider」や「redrawSlider」を実行する必要があります。
一つや二つであれば以下の様に個別に設定すれば解決できます。
$(document).ready(function(){ var slider = $('.bxslider').bxSlider({ auto: true, autoHover:true, pager:false, pagerType:'full' }); (".tabselector a").click(function(){ slider.reloadSlider(); }); });
しかし、10個単位でスライダーがある場合に、一つ一つ設定して行くのは辛い・・・。
なにかやりようがないかと調べたところ、素敵な解決方法を載せているサイトがありました。
[adsense]
こちらのサイトを参考に修正したのか下記のソースです。
$(document).ready(function(){ var config = { auto: true, autoHover:true, pager:true, pagerType:'full' }; var sliders = new Array(); $('.bxslider').each(function(i, slider) { sliders[i] = $(slider).bxSlider(config); }); $(".tabselector a").click(function(){ $.each(sliders, function(i, slider) { slider.reloadSlider(config); }); }); });