0

我有一个出色的“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;
});});
4

1 回答 1

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;
    });
});
于 2012-09-20T18:19:28.003 回答