棘手的gotHtml无法加载内容

时间:2012-09-20 18:15:09

标签: php javascript html

我有一个优秀的“gotHtml”代码,可以在我的php页面中提供其他php页面的内容。但是当我想从“index.php”调用这些“href”,而不是“service.php”谁工作正常,我无法加载页面和内容,任何想法?

/here is the php part
<p id="serv-tabs">
<a href="#serv/acse">Accounting Services</a><br/>
<a href="#serv/compA">Company Administration</a><br/>
 ........
 ........</p>

<div id="serv-content"> 
.....
</div>


/here is the script
$(document).ready(function() {
$("#serv-tabs a").click(function() {
    var page= this.hash.substr(1);
    $.get(page+".php",function(gotHtml) {
        $("#serv-content").html(gotHtml);
    });
    return false;
});});

1 个答案:

答案 0 :(得分:1)

你不能在那里使用substr(),你应该将你的页面名称拆分为/并使用第二个值:

$(document).ready(function() {
    $("#serv-tabs a").click(function() {
        var page = this.hash.split('/');
        $.get(page[1]+".php",function(gotHtml) {
            $("#serv-content").html(gotHtml);
        });
        return false;
    });
});

我猜你正在使用相同的原则加载service.php,在这种情况下,你应该重新初始化绑定以绑定新元素的点击:

function reBind(element, content){
    $("#"+element+" a").click(function() {
        var page = this.hash.split('/');
        $.get(page[1]+".php",function(gotHtml) {
            $("#"+content).html(gotHtml);
        });
        return false;
    });
}

$(document).ready(function() {
    $("#page-tabs a").click(function() { // assuming your service.php is called in same way like subpages in services are called, I've added page-tabs as main pages
        var page = this.hash.split('/');
        $.get(page[1]+".php",function(gotHtml) {
            $("#page-content").html(gotHtml);
        }).success(function(){
            if(page[1] == 'service'){
                reBind('serv-tabs', 'serv-content');
            }
        });
        return false;
    });
});