2012-02-24 4 views
1

하나는 작동하지 않고 다른 두 양식은 작동하는 간단한 코드가 있지만 두 가지 방법이 작동하는 이유는 무엇입니까.jQuery hashchange 문제

간단한 코드를 살펴보십시오. http://jsfiddle.net/NjWAz/ (제대로 슬라이드되지 않음)

div ID 만 추가하면 제대로 슬라이드됩니다. http://jsfiddle.net/NjWAz/2/ 는 (여기서 뭐 그냥 변경 IDS가 작동하게하는 방법? 실제로 작동을 유발한다는 내 첫 번째 질문입니까?)

그리고 다른 형태. http://jsfiddle.net/NjWAz/1/

답변

1

가 작동하지 않는 이유 (그것은 그것 .. 작동 및 기본 동작 무엇을 만들 었는지 기본 동작을 방지하여이 http://jsfiddle.net/NjWAz/에서 근무 파괴되는 것을 내 두 번째 질문을, 그래서 여기에 너무 작품이다) 첫 번째 예제는 링크의 기본 동작을 방해하지 않기 때문입니다. 당신이 해시 태그와 링크를 만들 때 첫 번째 예제에서, 당신은 #two 당신을 가리키는 링크를 가지고 있기 때문에 (예를 들어 #two)는 링크 같은 ID 매개 변수 (예 : <div id="two">)

와 요소에 페이지를 이동합니다 id가 동일한 요소가 있다면 <div id="two">, 요소로 점프 한 다음 jQuery 애니메이션을 계속 실행하여 #three으로 이동하는 것처럼 보이게합니다.

두 번째 예인 href 속성 값은 HTML 요소와 일치하지 않으므로 잘 작동합니다.

세 번째 예에서는 링크의 기본 동작을 방해하여 작동합니다.

세 번째 예제의 메서드를 사용하여 기본 동작을 방지하거나 false를 반환 할 수 있습니다. 당신의 클릭 이벤트의 말 : 나는 실제로 두 움직임이있는 내 작동하지 않는 코드에서 다음 제대로 이해하고

$(function() { 
    $(".clickIt a").click(function() { 
     var linked = $(this).attr("href"); 
     var pos = $(linked).position(); 

     $(".clickSlider").stop().animate({left: -pos.left,}, 500); 

     return false; 
    }); 
});​​​​​ 

희망 내 설명은 의미 :