2016-09-18 16 views
0

bxsliderでコンテンツを動的に更新する際に問題が発生しています。 HTMLでli項目を入力することで、コンテンツを正常に読み込むことができました。 ul htmlをデータベースの新しいliコンテンツに追加または置換しようとすると、スライダを再読み込みできません。ここに私のスクリプトの重要なマークアップがあります。 console.logにエラーがなく、画像やスライドが表示されない理由はありますか?jQuery bxslider動的更新が動作しない

var url = 'image/picture.jpg'; 
updateSlider('<li><img src=\''+url+'\'></li>'); 

var slider, sliderConfig = { 
    pager: true, 
    pagerType: 'short', 
    auto: true, 
    slideWidth: screen.width, 
    onSliderLoad: function(){ 
    $('.bx-viewport').css({'height':'100% !important'});}} 

$(function(){ 
    slider = $('.bxslider').bxSlider(sliderConfig); 
}); 

function updateSlider(data){ 
    $('.bxslider').html(data); 
    slider.reloadSlider(sliderConfig); 
} 
+0

私は答えて作成したばかりです。 'updateSlider( '

  • ')を呼び出してください。文書の準備が整った後でデータを取得した後でなければなりません。 – itsazzad

    答えて

    0

    次のように試してみてください、あなたはAJAXなどのような任意の遅延機能を使用してデータを持っているだけで後updateSlider('<li><img src=\''+url+'\'></li>');を呼び出すこと。私は、ドキュメント準備に入れているが、あなたは成功したAJAX要求後に実行する必要があります:私は答えを見つけた

    var url = 'image/picture.jpg'; 
    
    var slider, sliderConfig = { 
        pager: true, 
        pagerType: 'short', 
        auto: true, 
        slideWidth: screen.width, 
        onSliderLoad: function() { 
         $('.bx-viewport').css({'height': '100% !important'}); 
        } 
    } 
    
    function updateSlider(data) { 
        $('.bxslider').html(data); 
    } 
    
    $(function() { 
        slider = $('.bxslider').bxSlider(sliderConfig); 
    
        //update slider on load or after any ajax call success 
        updateSlider('<li><img src=\'' + url + '\'></li>'); 
    }); 
    
    $('document').on('click', 'a', function() { 
        slider.reloadSlider(sliderConfig); 
    }); 
    
    +0

    更新をonclickボタンイベントに移動して、ページの読み込みが完了したことを確認しました。私はコンテンツがbxslider ULに追加されているのを見て、slider.reloadSlider()を呼び出すと、左右のコントロールが見えますが、画像は表示されません。これは、bxsliderのLIコンテンツをフォーマットするCSSで問題になる可能性がありますか? –

    +0

    私は少しコードを更新して、今すぐ動作するはずです。お知らせ下さい – itsazzad

    0

    、ご提案していただきありがとうございます。

    問題はCSSにあります。スライダーを再ロードすると、CSSは.bx-wrapper、.bx-viewport、.bxslider、および.bxsliderのli要素で0に設定されていました。私はそれらを必要な高さにリセットすると、それは私の問題を解決しました。

    $(".bx-wrapper,.bx-viewport,.bxslider,.bxslider li").css("height",newHeight);