2013-03-14 49 views
0

我在页面上有一个带有5选项卡系统的页面。每个标签在左侧的导航列表中都有一个链接,这样某个人可以直接链接到打开了特定标签的页面,或者单击任意标签来显示内容隐藏/另一个。在Drupal中使用location.hash w/jquery而不是'加倍'url

要做到这一点,我使用的location.hash和附加每个标签ID的网址,如:

http://localhost:8082/departments/site-facilities/enviroment/iso-14001#impactAreas 

所以有人可以只打:

http://localhost:8082/departments/site-facilities/environment 

..see的标签系统,然后点击iso-14001选项卡,该选项卡将哈希值添加到网址,或者可以在上面输入该网址或点击左侧导航栏中的链接。

我在Drupal遇到的问题是,在基本的HTML列表(这是一个额外的列表,而不是主,也不二级菜单),我已经在一个链接的HREF进入,如:

< 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位置附加到现有网址。

我不知道为什么,如果这是一个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,我只是想知道我还有什么失踪。

谢谢

回答

0

圣牛。这和使用“?”一样简单代替 ”#”。

那么,这就是我们学习的方式。感谢您的期待。

相关问题