2010-05-17 2 views
4

jquery를 사용하고 있으며 몇 가지 작업을 수행해야합니다.앵커를 사용하여 div 표시

1) 누군가 다른 링크를 표시하기 위해 링크 (또는 제 경우에는 div)를 클릭하면 URL에 앵커를 추가하고 싶습니다.

누군가 "라이브"링크를 클릭하면 '라이브'div가 아래로 내려 가고 URL에 #live가 추가됩니다.

2) 누군가가 해당 페이지를 방문하여 URL 끝에 #live 앵커를 유지하면 'live'div가 바로 표시되어야합니다.

누군가가 div를 클릭하면 slideDown()의 기본 부분을 처리하는 방법을 알고 있습니다. 해시 태그를 추가하는 방법을 모르거나 페이지가로드 될 때 해시 태그가 선택되어 해당 div가 표시되도록합니다.

이 점에 대해 이해하면 도움이 될 것입니다. 미리 감사드립니다. URL에 해시를 Appening

답변

9

예를 들어, location.hash 조작으로 간단하다 :

$("a.live").click(function() { 
    window.location.hash = 'live'; // not needed if the href is '#live' 
}); 

쉽게 따라이 값은 페이지가로드 될 때까지,의에 따라 그 존재의 테스트 및 작동 할 수 있습니다 예 :

$(document).ready(function() { 
    var hashVal = window.location.hash.split("#")[1]; 
    if(hashVal == 'live') { 
     $("#live").show(); 
    } 
}); 
+0

감사 :

는 상관없이 위 접근하는이 같은 페이지로드에 하나를 보여줄 수 있습니다! 정확히 내가 무엇을 찾고 있었는지. – Andelas

5

이 같은 마크 업을 한 경우 :

<a href="#div5" class="toggler">Toggle Div 5</a> 
<div id="div5">Content for Div 5</div> 
당신은 t을 할 수

그의 jQuery를에이에 jQuery를

<div rel="#div5" class="toggler">Toggle Div 5</a> 
<div id="div5">Content for Div 5</div> 

을 그리고 조정 :

$("a.toggler").click(function() { 
    $(this.hash).slideToggle(); 
}); 

또는 rel 또는 사업부 뭔가를 사용하는 당신은 다음과 같이 클릭

$("div.toggler").click(function() { 
    var hash = $(this).attr("rel"); 
    $(hash).slideToggle(); 
    window.location.hash = hash; 
}); 

나의 추천 것 앵커에 display:block;을 사용하여 원하는 것을 수행하고 여기에서 기본 브라우저 동작을 활용하면 클릭시 해시가 처리됩니다.

$(function() { 
    if(location.hash != "") { 
    $(location.hash + ":hidden").slideDown(); 
    } 
});