2012-07-07 2 views
4

해시 변경을 감지하기 위해이 플러그인 http://www.asual.com/jquery/address/을 사용하고 있습니다. 내 웹 사이트에서는 탐색 용도로만 사용하므로 사용자 경험의 중요한 부분입니다. 이제는 해시가 변경되지 않으면 이벤트를 트리거하지 않는다는 점을 제외하면 내가 수행하고있는 모든 작업에 완벽하게 작동합니다. 예를 들어 클릭하면 마지막으로 클릭 한 해시 URL과 다르지 않습니다. co.kr/home을 열고 홈페이지 아이콘을 다시 클릭하면 일반 링크 만 사용하는 것처럼 다시 페이지가 다시로드되지 않습니다. URL의 일부인 모든 링크에 대해이를 수행하는 방법을 파악할 수 없었습니다. 나는 그것이 탐색 부분없이 태그를 사용하기 때문에 (뿐만 아니라 모든 태그. 그래서 어떤 도움은 좋은 것입니다 감사합니다.해시가 변경되지 않는 경우에도 jQuery 주소 해시 변경 트리거

$.address.change(function(event){ 
///events to be triggered on hash change 
}); 

답변

5

onhashchange 이벤트가 적절하게 이름, 그것은 단지 화재 때 해시 변경됩니다.

.

$(window).on("onhashchange", function (e) { 
    route(); 
}) 
$(".icon").on("click", function(e) { 
    location.hash == "#/" ? route(): null; 
}) 
:

나는이 문제의 알고있는 유일한 해결책은 홈페이지 아이콘의 클릭 이벤트에 동일한 기능을 결합하는 것 또한

, jQuery를 그것 해시 변화에 대한 자신의 이벤트의 제공 다음은 #nav div에있는 태그, 말, 경우

또한 :

$("a").on("click", function() { 
    location.hash == this.href ? route() : null; 
}) 
:

$("#nav").delegate("a", "click", function() { 
    location.hash == this.href ? route() : null; 
}) 

이 아니면 이것은 단지 모든 태그에 적용 할 수 있습니다

관련 문제