2013-02-26 2 views
0

내 사이트에는 다른 페이지의 하위 페이지로 연결되는 헤더에 드롭 다운 메뉴가 있습니다. about.php 메인 버튼 링크와 about.php#contacts 등으로 가져가 메뉴 링크 ...처럼 자식 페이지, 그들은 별도의 페이지가 아닌하지만를 수정하는 자바 스크립트 함수를 사용하여 온/오프 전환되는 각 페이지에 지금 자바 링크로 작업하는 해시 링크와 관련된 문제

CSS 값을 표시하십시오.

그래서 인덱스에있는 경우 about.php#contacts을 클릭하면 연락처 내용이 잘 표시됩니다. 그러나 약 페이지에있는 경우 약 페이지로 안내하는 해시가있는 링크가 작동하지 않습니다. 다른 페이지에도 작동하지만 해시 링크가 현재 페이지를 가리키는 경우 작동하지 않습니다. 검색 주소창에서 url은 변경되지만 페이지 나 스크립트를 추측하여 새 콘텐츠를 표시하도록 다시로드해야합니다.

여기에 내가 사용하는 관련 코드가 있습니다. 수행하려는 작업을 수행하는 더 좋은 방법이 있습니까?

//Drop down 
<ul><li><a href="about.php">About Us</a> 
<ul><li><a href="about.php#profile">contacts</a></li> 
//More.. 
</ul></li></ul> 

//Menu on the page 
<ul> 
<li><a href="javascript:showlayer('contacts');"><span>Contacts</span></a></li> 
//More 
</ul> 

//Javascript code that handles everything 
<script language="javascript"> 
var hash = window.location.hash; 
var selectedDiv = hash.split('#')[1]; 
if(selectedDiv != null) 
{ 
    showlayer(selectedDiv); 
} 
function showlayer(name){ 
    document.getElementById("contacts").style.display = "none"; 
    //More 
    document.getElementById(name).style.display = "block"; 
} 
</script> 

답변

1

다른 해시를 사용하는 현재 페이지를 가리키는 링크를 클릭해도 페이지가 다시로드되지 않습니다.

대신 hashchange 이벤트에 처리기를 추가하고 코드를 실행해야합니다.

코드를 CSS :target 선택기로 완전히 바꾸십시오.

+0

감사합니다. 나는 css를 들여다 볼 것이다. – gta0004

관련 문제