0

私はいくつかの jQuery をいじり、ファイルから HTML を読み込んでいて、トラブルに遭遇しました。基本的に、ページで URL パラメーターを抽出しdata.html、 data がパラメーター値である場所に対応するファイルを読み込み、gallery内部に格納されている HTMLdata.htmlを divsliderに挿入し、NivoSlider (Jquery ギャラリー) をそのギャラリーにフックします。

すべて正常に動作しています - パラメータが見つかり、ファイルがロードされ、HTML が変更されました (firebug によると)。しかし、ギャラリーは、HTML が変更されていないと信じているかのように、アイドリング状態でそこに座っているだけです。

これが私のJqueryです:

//With respect to http://www.jquery4u.com/snippets/url-parameters-jquery/
    $.urlParam = function(name){
        var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);
            if (!results) { return 0; }
            return results[1] || 0;     
        }
    $(window).load(function() {
        //Attempt to extract the parameter for gallery.
        var album = $.urlParam('gallery');
        var path = album+ ".html";
        //Is this legit?
        if(album != 0){
            //Kick into loading the gallery.
            $("#slider").load(path);
            //Load the gallery?
            $('#slider').nivoSlider({
                effect: 'fade',
                animSpeed:0,
                directionNav: true
            });
        }else{
            path = "a.html"; //Reset path.
            $("#slider").load(path); //Load.
            //Load gallery
            $('#slider').nivoSlider({
                effect: 'fade',
                animSpeed:0,
                directionNav: true
            });

        }       
    });

HTML ファイルは次のように単純です。

<img src="a/img1.jpg" alt=""/>
<img src="a/img2.jpg" alt=""/>

ページなどを更新する必要がありますか? 私はこれをすべて localhost Web サーバー内で行っているので、AJAX 要求が適切に機能していることはわかっており、firebug は HTML が正しく挿入されたことを確認しています。

何かご意見は?前もって感謝します!

4

1 に答える 1

4

スライダーを設定する前に、ajax リクエストが完了するまで待つ必要があるかもしれません。

    $("#slider").load(path, function(){
        //Load the gallery?
        $('#slider').nivoSlider({
            effect: 'fade',
            animSpeed:0,
            directionNav: true
        });
     });
于 2013-06-27T01:57:31.280 に答える