我有一个优秀的“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;
});});
答案 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;
});
});