2010-05-17 2 views
8

다음 코드를 사용하여 URL 끝 부분에 해시 태그를 추가합니다. 그렇게하면 누군가가 해당 URL을 복사하여 특정 div를 볼 수있는 상태로 해당 페이지로 되돌릴 수 있습니다. 이 예에서 jquery로 기본 해시 태그 동작 중지

$("a.live").click(function() { 
    window.location.hash = 'live'; 
    $("#live).slideDown(); 
}); 

나는 slideDown가 링크를 클릭 할 것 '라이브'라는 사업부를 가지고 있고, '#live'는 URL에 추가됩니다. 그런 다음 적절한 div가 표시되도록 페이지가로드 될 때 해시 태그를 확인하는 코드가 있습니다.

제 문제는 브라우저가 호출 된 후 '라이브'div로 점프하지 못하게하려면 어떻게합니까? 페이지가 div로 스크롤되는 것을 원하지 않습니다. 그냥 열어서 해시 태그를 추가하여 사람이 복사하고 해당 div 페이지가 표시된 해당 페이지로 돌아갈 수있게하려는 것입니다.

팁이 있습니까?

감사합니다.

+0

위의 링크를 클릭하거나 페이지에 URL에 해시가 처음로드 될 때를 의미합니까? – karim79

답변

8

이 시도? 그렇다면 ID가 문서에서 발견되지 않도록 브라우저에서 자동으로 해당 요소로 스크롤하지 않도록 해시에서 ID에 접두어를 추가하는 것이 좋습니다 (예 : #_live). 그런 다음 코드를 수정하여 제거하십시오. 접두사를 집어들 때 접두사.

나는 '해킹'을 제안하고 있는데, 브라우저를 사용하지 않는 솔루션에 대해서는 JavaScript를 사용하는 브라우저 동작을 확실하게 방지 할 수 있다고 생각하지 않기 때문입니다.

8

다릅니다. 당신이 앵커를 클릭 할 때 그것을 방지하려면이를 사용

$("a.live").click(function(e) { 
    e.preventDefault(); // Prevents browsers default action 
    window.location.hash = 'live'; 
    $("#live").slideDown(); 
}); 

를 사용하면 페이지가로드 해시으로 스크롤되는 것을 방지하려면, 나는 당신이 그것을 방해하는 방법을 모르겠어요. 내가 믿고있어

$("a.live").click(function() { 
    window.location.hash = 'live'; 
    $("#live").slideDown(); 
    return false; // this will prevent default action 
}); 
2

당신이 당신이 말하는대로 사업부를 여는 데 사용할 문서 준비 이벤트에 일부 코드가 있습니다