2010-11-30 5 views
0

내 문제는 가장 내가 기록이 스크린 캐스트 설명한다. jQuery 주소의 작동 방식을 모르는 사람들은 change() 메서드를 사용하여 해시 변경 내용을 청취합니다. 뒤로 버튼을 누르고 이전 페이지 URL로 이동하는 하이퍼 링크를 누르면 동일한 이벤트 핸들러를 호출하기 때문에 동일한 방식으로 동작해야합니다. 여기jQuery를 주소 차이는

는 의사 코드입니다 : 당신이 비디오를 볼 경우

$address.change(function(event) { 
    if (event.value != '/') { // is the image link 
     Get the URL to be loaded 
     Create an overlay, append it to body and set its height, width, opacity 
     Put overlay on top of gallery 
     Load URL into overlay then fade it in 
     Set BODY to overflow: hidden 
    } else { // is the gallery link 
     Set BODY to overflow: auto 
     Fade out overlay then remove it 
    } 
}); 

, 당신은 그 이전 페이지로의 링크를 누르면 볼 수는 페이지의 스크롤이를 누르면 0으로 다시 이동됩니다 브라우저 뒤로 버튼은 원하는 동작을 유지합니다.

무엇이 잘못 될 수 있습니까?

+0

아마도이 질문에 대한 답변을 생각합니다. http://stackoverflow.com/questions/1489624/modifying-document-location-hash-without-page-scrolling –

+0

좋아, 내가 뭘 잘못했는지 생각해. 이력은 이전 페이지의 스크롤을 기억하므로 뒤로 버튼은 스크롤을 유지합니다. 이전 페이지로의 링크는 새로운 히스토리 상태를 생성하므로 이전 상태로 돌아 가지 않고 스크롤이 0 인 새로운 상태로 돌아갑니다. –

답변

0

오케이 내가 잘못 생각한 것 같습니다. 이력은 이전 페이지의 스크롤을 기억하므로 뒤로 버튼은 스크롤을 유지합니다. 이전 페이지로의 링크는 새로운 히스토리 상태를 생성하므로 이전 상태로 돌아 가지 않고 스크롤이 0 인 새로운 상태로 돌아갑니다.