0

我一直在玩一些 jQuery 并从文件中加载 HTML,并且遇到了麻烦。data.html基本上,我希望页面提取一个 URL 参数,加载一个与data 参数值对应的文件,gallery然后将存储在其中的 HTML 注入data.htmldiv slider,然后让 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 回答