我有一个页面上有一个 5 选项卡系统的页面。每个选项卡在左侧导航列表中都有一个链接,以便某人可以直接链接到打开特定选项卡的页面,或者单击任何选项卡本身以显示内容隐藏/其他。
为此,我使用 location.hash 并将每个选项卡 ID 附加到 url,如:
http://localhost:8082/departments/site-facilities/enviroment/iso-14001#impactAreas
所以有人可以打:
http://localhost:8082/departments/site-facilities/environment
..查看选项卡系统并单击将哈希添加到 url 的 iso-14001 选项卡,或者他们可以在上方输入该 url 或单击左侧导航栏中的链接。
我在 Drupal 中遇到的问题是在基本的 html 列表(这是一个额外的列表,不是主菜单或辅助菜单)中,我输入了 a hrefs 链接,例如:
< a href="/departments/site-facilities/environment/iso-14001#impactAreas">link here</a>
如果站点中的其他位置有效。但是,一旦一个人在带有标签的实际页面上单击左侧列表导航链接,浏览器中的 url 将变为:
http://localhost:8082/departments/site-facilities/departments/site-facilities/environment/iso-14001#impactAreas
所以这就像 Drupal 没有识别重新加载新页面,只是将 href 位置附加到现有 url。
我不知道为什么,如果这是一个 php 的东西和散列,如果我需要不同的 jquery 等等。
这是我放在一起的基本jquery:
function setupSubNav(){
pathName = window.location.href;
$('.hiddenSection').css('display','none');
pathArray = pathName.split('#');
param = pathArray[pathArray.length-1];
if(pathArray.length>1){
showSection(param,$('.' + param + 'Trigger'));
}
else
{
if ($('body.fervens-a .pageTabs li')) {
var sectionName = $($('body.fervens-a .pageTabs li')[0]).attr('class').split('Trigger')[0];
showSection(sectionName, $($('body.fervens-a .pageTabs li')[0]));
}
}
$('body.fervens-a .pageTabs li').click(function(){
if (!($(this).hasClass('current'))) {
var sectionName = $(this).attr('class').split('Trigger')[0];
showSection(sectionName, $(this));
}
});
}
function showSection(sectionName,$navObj) {
if (sectionName != 'iso14001' && sectionName != 'environmentalPolicy' && sectionName != 'impactAreas' && sectionName != 'goals2013' && sectionName != 'isoDocs') {
sectionName = 'iso14001';
$navObj = $($('body.fervens-a .pageTabs li')[0]);
}
$('body.fervens-a .pageTabs li').removeClass('current');
$navObj.addClass('current');
$('.hiddenSection').css('display','none');
$('#' + sectionName + 'Content').css('display','block');
window.location.hash = sectionName;
}
我是否应该以某种方式检查 window.location 是否已经有一个散列,如果有,在添加新散列之前将其删除?听起来不对,但我不知道为什么这不起作用。
我使用了之前为 Schwab 迷你站点编写的代码,只是添加了哈希内容,但那里全是 html,现在这是 Drupal 和 php,我只是想知道我还缺少什么。
谢谢