2013-02-12 36 views
1

我有一個子導航(使用下面的代碼)在單擊適當的鏈接時切換div/off。它工作完美。唯一的問題是,現在我需要使用散列(pageName.php#div4)鏈接到此頁面,並使用id div4打開div,並且我沒有太多運氣。從關閉頁面鏈接中顯示一個div

關於我如何實現這一點的任何想法?

子導航HTML:

<div class="subnav"> 
    <a href="javascript:;" data-target="1" class="showDiv active">Link</a> 
    <a href="javascript:;" data-target="2" class="showDiv">Link</a> 
    <a href="javascript:;" data-target="3" class="showDiv">Link</a> 
    <a href="javascript:;" data-target="4" class="showDiv">Link</a> 
</div> 

內容HTML:

<div id="div1" class="targetDiv">Content</div> 
<div id="div2" class="targetDiv">Content</div> 
<div id="div3" class="targetDiv">Content</div> 
<div id="div4" class="targetDiv">Content</div> 

的JavaScript:

$('.showDiv').on('click', function() { 
    $(this).addClass('active').siblings().removeClass('active'); 
    $('.targetDiv').fadeOut("fast").delay(200); 
    $('#div' + $(this).data('target')).fadeIn("slow"); 
}); 

$('.showDiv').first().click(); 

回答

0

現在我需要鏈接到這個網頁和開放的 - 說 - DIV #4

如果要選擇與4 ID的元素,您可以編寫:

$('div#' + $(this).data('target')) 

或ID都是唯一的:

$('#' + $(this).data('target')) 

編輯:

var $divs = $('div.targetDiv'); 
$('.showDiv').on('click', function() { 
    var $this = $(this); 
    // return if the clicked element has active class 
    if ($this.hasClass('active')) return; 
    $this.addClass('active').siblings().removeClass('active'); 
    $divs.fadeOut("fast", function() { 
     $divs.filter('#div' + $this.data('target')).delay(200).fadeIn("slow"); 
    }) 
}).first().click(); 
+0

由於未定義的,我想我可能沒有解釋自己很好。我希望子導航顯示/隱藏功能保持原樣,但允許像/page.php#div4這樣的鏈接隱藏除id =「div4」之外的所有div。我已將div代碼添加到原始問題中。 – rrfive 2013-02-12 04:17:50

+0

@rfive歡迎您,好的,請更新您問題中的'div#4'部分。 – undefined 2013-02-12 04:22:29

0

檢查頁面加載時的hash component of the URL事件。從那裏,根據需要做出迴應。

喜歡的東西

$(function() 
{ 
    if(window.location.hash) 
    { 
     $("#" + window.location.hash).click(); 
    } 
}); 
相關問題