2012-06-04 3 views
0

+/- 기호를 사용하여 텍스트를 숨김/숨기는 방법은 old StackOverflow question입니다.텍스트를 숨김/숨긴 후 상단으로 스크롤하는 것을 방지하는 방법은 무엇입니까?

Cheesosample code과 함께 멋진 솔루션을 게시했습니다. 그것은 원래 포스터가 동의하지 않았지만 내가 찾고 있었던 바로 그 것이었다. :-)

휴대 기기에서 사용할 수있는 웹 사이트의 코드를 사용하고 있습니다. 유일한 문제는 +/-를 누를 때마다 페이지가 화면 상단으로 다시 이동한다는 것입니다.

어쨌든 그 문제를 해결할 수 있습니까? 감사.

+0

중복 ... 진지하게, 그냥 Google을 사용하십시오. http://stackoverflow.com/questions/7697917/prevent-page-scroll-after-click http://stackoverflow.com/questions/1601933/how-do-i-stop-a-web-page-from-scrolling to-the-the-top-when-a-link-click-that-t http://stackoverflow.com/questions/10139761/auto-scroll-stop-jumps-back-to-top-of-page – ahren

+0

실제로 솔루션을 제공하기 위해 게시하고 있습니다. 저의 첫 번째 선택은 원래의 답변에 코멘트를 추가하는 것이지만 오랫동안 그 질문은 종결되었습니다. – benevolentprof

+0

맞아요.하지만 누군가가 그 문제를 보았을 때, 단순한 구글은 같은 쿼리를 여러 번 여러 번 대답했을 것입니다. 저의 이전 코멘트에는 세 가지 예가 있습니다. – ahren

답변

2

클릭 이벤트 처리기에서 false를 반환합니다.

$('a.selector').click(function() { 
    return false; 
}); 
2

여기에 나와있는 답변은 Cheeso입니다. 나는 다른 사람들의 이익을 위해 여기에 게시하고 있습니다. 이것은 효과가 없었으며 그 이유를 알아내는 과정에 있습니다.


이 라인 $ ('사업부의 페이지 참조 [HREF = "#"을]')로 변경하면 클릭 (함수() {의 expando (이);}).; 이에

:.

$ ('DIV 피 A [HREF = "#"] ")를 클릭 (함수 (EV) {ev.preventDefault()의 expando (이)});

... 정상으로 스크롤하는 것을 멈춰야한다고 생각합니다.


사용자가 해시 문자가있는 링크를 클릭하면 브라우저는 조각 마커가있는 페이지의 위치로 스크롤해야합니다. 북마크처럼. 예를 들어 다음 URL에서 : http://en.wikipedia.org/wiki/Causes_of_WWII#Militarism 조각 (책갈피)은 #Militarism이며 링크를 클릭하면 브라우저가 해당 섹션으로 스크롤합니다.

내가 작성한 샘플의 경우, hrefs는 # 문자가 아니므로 빈 조각을 의미합니다. 그리고 브라우저가 기본 위치로 스크롤한다고 가정합니다.이 페이지는 "페이지 상단"입니다.

이 문제를 방지하려면 클릭 핸들러에서 ev.preventDefault()를 호출하기 만하면됩니다. 이것은 클릭의 정상적인 처리를 억제하는 jQuery 트릭입니다. 귀하의 경우 브라우저가 존재하지 않는 앵커로 스크롤하려고하는 부분을 억제합니다.

+0

Chrome에서 작동하지만 Safari에서는 작동하지 않습니다. – benevolentprof

+0

내 iPhone에서는이 기능이 Atomic Web browser에서 작동하지만 Safari에서는 작동하지 않습니다. 이것이 모바일 Safari의 지속적인 문제인 것 같습니다.http://stackoverflow.com/questions/5664147/safari-mobile-ignoring-prevent-default – benevolentprof

+0

확인. 이제 모바일 Safari에서 작동합니다. 나는 원본 파일에서 한 줄을 복원했다 :''다른 브라우저는 그것을 필요로하지 않았다. – benevolentprof

관련 문제