2011-10-24 6 views
5

jQuery를 사용하여 현재 페이징에 해당하는 "누른"단추가 "unpressed"단추와 다르게 동작하는 색 바램 탐색 메뉴를 만들고 싶습니다 (특히, 호버링시 다른 색상으로 변함). www.guitaracademy.nl의 예제를 보면 기본 javascript와 window.location.hash 속성을 함께 사용하고 있습니다.jQuery에서 window.location.hash 사용

그러나이 해시를 jQuery로 가져올 수 없습니다. 예제 스크립트는 다음과 같습니다.

<html> 
<head> 
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script> 
<script type="text/javascript"> 
$(function(){ 
    var p=window.location.hash; 
    $("#clickme").click(function(){ 
     alert(p) 
    }); 
}); 
</script> 
</head> 
<body> 
<a href="#test">Click me first</a> 
<div id="clickme">Then click me</div> 
</body> 
</html> 

이 페이지를로드 한 후 "맨 처음 클릭"링크를 클릭합니다. 검색 주소창에 원본 URL에 "#test"가 추가 된 것을 볼 수 있습니다. 그러나 그 다음 "다음을 클릭하십시오"div를 클릭하면 빈 경고가 나타납니다. 해시가 '업데이트 중'이 아닌 것처럼 보입니다.

나는 이것에 대한 도움을 크게 주시면 감사하겠습니다.

답변

5

해시 호출을 함수 내부로 이동하여 클릭이 호출 될 때마다 호출되도록하십시오. 당신이 가진 방식대로, 페이지의 초기로드시에만로드되었습니다.

$(function(){ 
    $("#clickme").click(function(){ 
     var p=window.location.hash; 
     alert(p) 
    }); 
}); 
+0

안녕하세요, 맞았습니다. 수렴 된 답장을 보내 주셔서 감사합니다. –

0

div에 대한 귀하의 기능은 절대로 해시를 업데이트하지 않습니다.

<script type="text/javascript"> 
    $(function(){ 
     $("#clickme").click(function(){ 
      var p=window.location.hash; 
      alert(p) 
     }); 
    }); 
</script> 
1

: 당신이 해시를 업데이트하는 코드를 기대한다면 당신처럼 조작해야합니다 변수 'p'가 업데이트되지 않는 경우 여기에 할당 문

var p=window.location.hash; 

한 번만 페이지가로드 될 때 실행됩니다. 따라서 로딩 할 때 P의 값은 비어 있으며 항상 비어있게됩니다. 대신

alert(p) 

alert(window.location.hash) 

을 시도하거나 클릭 콜백 내부의 할당을 이동합니다. 예 : 경고문 바로 위

0

이 해시는 upadated지고 있지만에서 : 당신의 클릭 리스너 내부 var p=window.location.hash;을 넣어보십시오

$("#clickme").click(function(){ 
    window.location.hash='#secondclick'; 

    //Remaining Code 
});