0

我正在使用它在加载 3 个页面之前显示加载图像。代码正在运行并显示加载图像,然后再从其他任何地方转到这些页面,然后是这 3 个页面。问题是当我去这些页面并在那里形成时,我点击了 3 个页面的链接之一,它什么也没做。只需在 url 的末尾添加一个 # 即可。

        $.ajaxSetup({
            cache: false
                    });

                    //Loading Image.
                    var ajax_load = "<img src='http://d2o0t5hpnwv4c1.cloudfront.net/412_ajaxCalls/DEMO/img/load.gif' alt='loading...' style='top:48%; left:48%; position:relative;'/>";

                    //PHP file URL.
                    var loadUrl = "/cakephp/Posts/index";
                    var loadUrl2 = "/cakephp/Posts/fetchHome";
                    var loadUrl3 = "/cakephp/accounts/getFollowers";

                    //$.get()  
                    $("#dash").click(function(){  
                        $(".container-fluid2").html(ajax_load);  
                        $.get(  
                        loadUrl,  
                        {language: "php", version: 5},  
                        function(responseText){  
                            $(".container-fluid2").html(responseText);
                            history.replaceState(null, "Dashboard", "posts");
                        },  
                        "html"  
                    );  
                    });  
                    $("#home").click(function(){  
                        $(".container-fluid2").html(ajax_load);  
                        $.get(  
                        loadUrl2,
                        {language: "php", version: 5},  
                        function(responseText){  
                            $(".container-fluid2").html(responseText);
                            history.replaceState(null, "Timeline", "posts/fetchHome");
                        },  
                        "html"  
                    );  
                    });  
                    $("#followers").click(function(){  
                        $(".container-fluid2").html(ajax_load);  
                        $.get(  
                        loadUrl3,  
                        {language: "php", version: 5},  
                        function(responseText){  
                            $(".container-fluid2").html(responseText);  
                            history.replaceState(null, "View followers", "accounts/getFollowers");
                        },  
                        "html"  
                    );  
                    });  
4

2 回答 2

1

我已经测试了您的代码,并且在添加后一切正常。

$(document).ready(function(){
     //your code here
}

document.ready 处理程序在运行前等待页面加载。这很重要,因为以前您可能一直在尝试将事件处理程序添加到尚不存在的对象。

希望这可以帮助。

如果不回复我,我会再看看。

于 2012-05-24T23:59:02.260 回答
0

解决了!这就是一次又一次地重新加载javascript函数的方式:

$(document).on("click", "#dash", function(){ 
                            $(".container-fluid2").html(ajax_load);  
                            $.get(  
                            loadUrl,  
                            {language: "php", version: 5},  
                            function(responseText){  
                                $(".container-fluid2").html(responseText);
                                $("#CancelReply").hide();
                                history.replaceState(null, "Dashboard", "/cakephp/posts");
                                $(document).attr('title','Dashboard');
                            },  
                            "html"  
                        ); 
                        });
于 2012-05-26T06:53:36.980 回答