2012-12-15 2 views
1

hashchange plugin을 사용 중입니다. URL에 hashchange를 추가하는 링크를 얻을 수는 있지만 브라우저에서 링크의 해시를 식별 할 수 없습니다.브라우저에서 해시 변경을 감지하는 방법

브라우저는 단순히 전체 해시 부분을 무시 localhost:3000/pages

localhost:3000/pages#?type=1를로드합니다. 다음과 같이

JS는 ...입니다이 코드는 플러그인 문서에 데모에 제공되는 것을 근본적으로 비록

$(function(){ 

    $(window).hashchange(function(){ 
    var hash = location.hash; 

    $('.links a').each(function(){ 
     var that = $(this); 
     that[ that.attr('href') === hash ? 'addClass' : 'removeClass' ]('selected'); 
    }); 
    }) 

    $(window).hashchange(); 

}); 

분명히 나는 ​​여기에서 밖으로 뭔가를 놓친 거지.

+0

모르겠습니까? jQuery의 최신 버전에서는 기본적으로 플러그인이 필요하며, 해시 변경이 페이지를 다시로드하지 않을 때 선택한 클래스를 유지하도록 해시에 대한 모든 링크를 확인해야하는 이유는 무엇입니까? 클래스를 직접 할당 할 수 있습니다. – adeneo

+0

이 코드를 사용하는 링크는 .load 기능을 사용하여 다른 콘텐츠를 페이지의 div에 다시로드합니다. 사람들이 앞뒤 브라우저 버튼을 사용할 수 있어야하므로 div 내용이 변경 될 때마다 순환됩니다. 사용자가 URL을 복사하여 URL에 붙여 넣을 수있게하는 것은 물론 div에 올바른 콘텐츠를로드 할 수 있습니다. – tob88

+0

브라우저가 해시 링크를 URL 매개 변수로 인식하게되므로 선택한 클래스를 추가하는 것이 중요하지 않습니다. – tob88

답변

1

window.location.hash은 해시 문자열을 가져 오는 방법입니다. 거기에서 필요에 따라 문자열을 조작하십시오.

관련 문제