2010-01-15 3 views
0

토글이 실제로 수행하기 때문에 이런 모양의 페이지가 있습니다 (예, scriptaculous javascript를 포함 시켰습니다). 작업) : 나는 방법은 아래 페이지의 하단에 ID = "thing99"에서 "More99"링크를 클릭하면div의 긴 페이지 : 아래쪽에서 div를 확장하려면 Effect.toggle을 사용하십시오. 페이지 위로 스크롤

<html> 

<div id="container"> 
    <div id="thing1" class="thing" > 
     <p>Some visible stuff 1</p><a href="#" onclick="Effect.toggle('extra1');">More1</a> 
     <div id="extra1" style="display:none;"> 
     <p>Some extra and initially invisible stuff</p> 
     </div> 
    </div> 

    <div id="thing2" class="thing"> 
     <p>Some visible stuff 2</p><a href="#" onclick="Effect.toggle('extra2');">More2</a> 
     <div id="extra2" style="display:none;"> 
     <p>Some extra and initially invisible stuff</p> 
     </div> 
    </div> 

    <!-- 96 more entities of class="thing" --> 

    <div id="thing99" class="thing"> 
     <p>Some visible stuff 99</p><a href="#" onclick="Effect.toggle('extra99');">More99</a> 
     <div id="extra99" style="display:none;"> 
     <p>Some extra and initially invisible stuff</p> 
     </div> 
    </div> 
</div> 
</html> 

, ID의 사업부는 = "extra99는"예상대로 나타납니다 페이지가 자동으로 맨 위로 스크롤됩니다.

상단의 "More1"링크를 클릭하면 상단에 초점을 맞 춥니 다.

어쨌든 내가 페이지를 맨 위로 이동하거나 다시 클릭 한 위치로 되돌릴 수 있습니까? 나는 아래로 스크롤하여 내가 방금 만든 것을 찾지 않습니다.

답변

-1

조나단 & Tatu가 올바른 방향으로 나를 시작했습니다. 나는 "return false"를 시도했다. 그리고 그것은 시간의 일부를 움직이게했다.

"return false"개념을 사용하여 Google을 검색하여 href에 대해 this page을 우연히 발견하고 false를 반환합니다.

"#"태그가 계속 페이지 상단으로 돌아 왔습니다. 나는 "return false"없이 href = ""를 시도했다. 그리고 원하는대로 작동했지만 무작위로 페이지를 다시로드했다. 원하는대로

<a href="" onclick="Effect.toggle('extra99'); return false;">More99</a> 

모든 일했다, 어떤 임의의 페이지를 다시로드 :

다음 솔루션

내가 지속적으로 원하지 않았다 무엇을 나에게 주었다.

+0

Jay,'return false'를 사용한다면 빈 href 값을 가질 필요가 없습니다. – Sampson

+0

그게 제가 가설을 세운 이유입니다. 그러나 웬일인지, 나는 양쪽 다 필요로했다. –

2

Effect.toggle(); 전화 후에 return false;을 시도하십시오.

<a href="#" onclick="Effect.toggle('extra99'); return false;">More99</a> 

이것은 이상적인 처리 방법은 아니지만 바로 문제를 해결해야합니다. 이상적으로는 HTML에서 모든 자바 스크립트를 제거하고 모든 onclick 속성을 제거하여 자바 스크립트의 원격 블록에서 모든 것을 처리하는 것이 이상적입니다.

+3

반환 값을 false로 설정해야하는 이유는 브라우저가 링크의 기본 동작을 계속 실행하기 때문입니다.이 동작은 페이지의 상단과 동일한 '#'을 따릅니다. –

+0

고마워요 조나단. 그게 날 올바른 길로 가도록했습니다. –

+0

Tatu에게 감사드립니다. 그게 바로 제가 알아 낸 것입니다. –