2015-04-02 107 views
0

在一個頁面上我有這樣的:
(1)微型導航
(2)在微型導航的各個環節(1)顯示或隱藏一個div(想想標籤)下方
(3)每個隱藏的div內(2)另一個顯示/隱藏DIV效果(想想手風琴)在一個頁面上點擊鏈接到另一個頁面顯示的div和擴大DIV

在另一頁我想​​這一點:
*鏈接,點擊後轉到頁上面,導航到正確的隱藏「標籤」(2),然後在手風琴(3)中展開(顯示)一個div。

問題
一切正常,但現在我想在另一頁上實現鏈接以顯示第二個隱藏的div和一個手風琴。我不知道如何做到這一點。想法?思考?

FIDDLE
http://jsfiddle.net/zuhloobie/2jtqroLL/1/

這裏是什麼,我想完成的圖形:external-link-show

HTML TRIGGER爲一體的MINI導航鏈接,以顯示其隱藏的DIV

<a href="#subDivTab1" class="subDivSwitchLink">overview</a> 

JQUERY DIV開關MINI NAV

$(function(){ 
$('a.subDivSwitchLink').click(function (e) { 
    var $this = $(this), 
    containerSelector = $this.attr('href'), 
    $links = $('a.subDivSwitchLink'); 
    e.preventDefault(); 
    $('div.subDivSwitch').not(containerSelector).hide(); 
    $(containerSelector).show(); 
    $links.not($this).toggleClass('subTitleActive', false); 
    $this.toggleClass('subTitleActive', true); 
}); 
var target = '#'+'subDivTab1'; 
$('a[href="'+target+'"].subDivSwitchLink').click(); 
}); 

JQUERY爲隱藏手風琴

 $(document).ready(function(){ 
     $('#drawer > ul > li:has(ul)').addClass("has-sub"); 
     $('#drawer > ul > li > a').click(function() { 
      var checkElement = $(this).next(); 
      $('#drawer li').removeClass('active'); 
      $(this).closest('li').addClass('active'); 
      if((checkElement.is('ul')) && (checkElement.is(':visible'))) { 
       $(this).closest('li').removeClass('active'); 
       checkElement.slideUp('normal'); 
      } 
      if((checkElement.is('ul')) && (!checkElement.is(':visible'))) { 
       $('#drawer ul ul:visible').slideUp('normal'); 
       checkElement.slideDown('normal'); 
      } 
      if (checkElement.is('ul')) { 
       return false; 
      } else { 
       return true;  
      }  
     }); 
    }); 

HTML FOR ONE隱藏DIV的手風琴

<div id="subDivTab2" class="subDivSwitch"> 
<div class="subRightSectionTitle soft">hidden div title2 
</div> 
<div class="subRightSectionText ulineGray"><span class="subRightSectionTextHeader">hidden div text2</span> 
</div> 
<div id="drawer" class="softDrawer"> 
    <ul> 
     <li><a href="#" onclick="return false;">hidden accordion title1</a> 
      <ul> 
       <li>hidden accordion text1</li> 
      </ul> 
     </li> 
     <li><a href="#" onclick="return false;">hidden accordion title2</a> 
      <ul> 
       <li>hidden accordion text1</li> 
      </ul> 
     </li> 
    </ul> 
</div> 

+1

酷的故事兄弟。你有什麼問題? – Banana 2015-04-02 17:23:01

+0

兄弟,是的 - 忘了那個部分。我不知道該怎麼做,有沒有人有任何想法? [原諒我對直覺上明顯的問題的要求;]] – chris 2015-04-02 17:25:27

+0

你能爲此做一個小提琴嗎? – 2015-04-02 17:31:50

回答

0

只是做查詢字符串時,鏈接用戶點擊添加查詢字符串到鏈接第1頁

<a href="page2.html?showdiv=true">page2</a> 

第1頁讀取查詢字符串

<script> 
function getParameterByName(name) { 
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); 
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), 
     results = regex.exec(location.search); 
    return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); 
} 
$(document).ready(function() { 
    if(getParameterByName('showdiv')=="true") 
    { 
     //show div and link. 
    } 
}); 
</script> 
+0

我的問題是,我不明白如何我會鏈接到一個特定的隱藏部分(在我的情況下「子鏈接2」,以及打開一個特定的手風琴(在我的情況下「accordion2標題」)...以及如何結合jQuery代碼來完成這些參數。看到小提琴:http://jsfiddle.net/zuhloobie/2jtqroLL/1/ – chris 2015-04-02 18:09:26

0

有幾種方法可以通過鏈接傳遞所需的參數。您可以使用Cookie或我使用的一種方法,即將鏈接url附加爲查詢參數。例如創建你的鏈接並添加?tab = 3。目標頁面需要一個查詢字符串解析器腳本來抓取這些腳本以供您使用,如您的要求:「導航到正確的隱藏」選項卡「,然後展開(顯示)手風琴中的div」。

// plain vanilla javascript - to test, try pasting in Chrome console, append some parameters to your URL, for example: mypage.html?nav=4&accordian=7 
 

 
    function getURLparams(paramName) { 
 
     var sURL = window.document.URL.toString(); 
 
     if (sURL.indexOf("?") > 0) { 
 
     var arrParams = sURL.split("?"); 
 
     var arrURLParams = arrParams[1].split("&"); 
 
     var arrParamNames = new Array(arrURLParams.length); 
 
     var arrParamValues = new Array(arrURLParams.length); 
 
     var i = 0; 
 
     for (i = 0; i < arrURLParams.length; i++) { 
 
      var sParam = arrURLParams[i].split("="); 
 
      arrParamNames[i] = sParam[0]; 
 
      if (sParam[1] != "") { 
 
      arrParamValues[i] = unescape(sParam[1]); 
 
      } else { 
 
      arrParamValues[i] = "no values"; 
 
      } 
 
     } 
 
     for (i = 0; i < arrURLParams.length; i++) { 
 
      if(arrParamNames[i] == paramName){ 
 
      return arrParamValues[i]; 
 
      } 
 
     } 
 
     return "no parameters"; 
 
     } 
 
    } 
 
    
 
    var navTarget = getURLparams('nav') 
 
    var accTarget = getURLparams('accordian') 
 
    
 
    // Now you can change nav 2 style and open accordian 3: 
 
    // var sLink = '#subLink' + navTarget; 
 
    // var sDivTab = '#subDivTab' + accTarget; 
 
    // sLink.css('font-size','24px'); 
 
    // sDivTab.show();
<!-- URL with parameter queries --> 
 
<a href="http://www.example.com/targetPage.html?nav=2&accordian=3">Link to nav 2 and accordian 3</a>

+0

我認爲我遵循 - 危險地接近超出我的知識。我真的很喜歡你展示的查詢參數的想法。我理解你的鏈接到nav2和accordion 3--但是如何在目標頁面上分配這兩個參數,以便鏈接知道去哪裏? – chris 2015-04-02 18:47:42

+0

不知道你是否看到了我最近添加的小提琴:http://jsfiddle.net/zuhloobie/2jtqroLL/1/ – chris 2015-04-02 18:58:46

+0

@chris - 看看註釋掉的例子中的jquery代碼和之前的那兩個vars。例如。如果navTarget返回'3',因爲URL包含了?nav = 3,那麼你可以使用它附加到你的jQuery元素並將其作爲目標。所以var sLink ='#subLink'+ navTarget; if(sLink ==#subLink3)然後更改css: sLink.css('font-size','24px'); – 2015-04-02 19:19:58

相關問題