2008-11-06 1 views
0

두 HTML 페이지가 있습니다. 첫 번째 HTML에서 무언가를 클릭하면 두 번째 HTML 페이지로 이동합니다. 내가하고 싶은 것은 첫 번째 HTML을 클릭 한 것에 따라 텍스트를 표시하는 것입니다. 다른 텍스트는 다른 ID로 싸여 있습니다. 누군가가 내가 뭘 잘못했는지 알고 있지,다른 HTML 페이지의 id에 대한 자바 스크립트 앵커 액세스

<a href="secondpage.html#one"></a> 
<a href="secondpage.html#two"></a> 
<a href="secondpage.html#three"></a> 

내가 "한"ID로 텍스트를로드 two.html 볼 것으로 예상하고있어,하지만 작동하지 않습니다 여기에 내가 쓴 방법은?

<ul id="menu" class="aaa"> 
    <li><a id="one" href="#">one</a></li> 
    <li><a id="two" href="#">two</a></li> 
    <li><a id="three" href="#">three</a></li> 
</ul> 

그리고 각 ID를 수정하는 JS 파일이 있습니다 :

여기에 두 번째 페이지의 코드는, 둘, 셋을위한

$("one").observe('click', function() { 
    $('Pic').writeAttribute('src',"picone.jpg"); 
    $('Bio').update("texthere!"); 
}); 

동일합니다.

바로 지금 첫 페이지의 버튼을 클릭하면 클릭 한 버튼에 관계없이 항상 "1"이라는 텍스트와 그림이 표시됩니다 ( ).

그러나 나는 그것을 클릭하면 "두"에 대한 그림과 텍스트를보고 싶다.

+0

HTML, JavaScript 등을 많이 배워야하는 것처럼 보이는 간단한 소리보다 훨씬 많은 소리가 들립니다. –

+0

@christine : 질문을 수정하고 [많이] 더 많이 포함 할 수 있습니다. 당신의 코드? – Pistos

답변

2

원하는 것은 페이지가로드 될 때 앵커의 클릭을 시뮬레이트하는 것입니다. jQuery를 사용하기 때문에 가장 간단한 방법 (가장 좋은 방법은 가장 좋은 방법)은 다음과 같습니다.

 
$(window).observe('domready', function() { 
    $(location.hash).click(); 
}); 

ondomready-event to window. id = 1 인 요소 가져 오기 (이 경우 jQuery는 '#one'이되며, location.hash는이 경우 매우 편리 할 것입니다.), 클릭을 트리거합니다.

$ (location.hash) .click();을 대체해야 할 수도 있습니다. $ (location.hash) .get (0) .click() jQuery는 jQuery 객체 배열을 반환하기 때문에.

하지만 더 나은 해결책은 수동으로 트리거 할 수있는 이벤트 처리기를 사용하는 것입니다. 따라서 이벤트를 발생시키지 않아도되고 앵커를 드롭하고 직접 리크 (lick)에 넣을 수 있습니다.

왜 당신이하고 싶은 것 모두가 콘텐츠를 동적으로 표시하거나 숨기고 싶을 때 두 번째 페이지를로드합니까? 동일한 페이지에서 수행하십시오 ...

0

"다른 ID"라고 말하면 두 번째 페이지에서 앵커를 어떻게 설정하고 있습니까? 두 번째 페이지의 앵커는 다음과 같아야합니다.

<a name='one'></a> 

두 번째 페이지에 표시하려는 텍스트 바로 위에 붙여 넣으십시오.

+0

두 번째 페이지의 앵커는 과 같습니다. 이름을 사용해야합니까? – shibbydoo

+0

나는 name = "one"을 추가하려했으나 잘 작동하지 않습니다 ... – shibbydoo

1

#blastuffbla는 ID가 아니라 위치 해시입니다. 다음을 사용하여 액세서 수 있습니다

self.document.location.hash.substring(1) 

희망이

0

가 스크롤 하시겠습니까 데 도움이 : 당신은 당신이 사용하는 것이 해시하려는 경우에만한다면

self.document.location.hash 

는 #hash 반환하는 이드의 위치에 페이지가 "하나"? 어쩌면 페이지의 내용이 너무 작아서 스크롤 할 수 없습니다. 나는 때때로 브라우저가 위선자로 표시된 요소를 캔버스 상단으로 옮기지 않고 그곳으로 스크롤되는 것처럼 보인다는 것을 의미한다. 브라우저의 맨 위로 스크롤 할 수 있도록 요소 다음에 충분한 공간을 포함 시키십시오.

희망이 있습니다.

1

태그에는 ID가 없지만 Url의 앵커를 처리하는 데 필요한 이름이 있지만 JS에서는 여전히 ID를 관리해야합니다. 그래서 목록은 다음과 같아야합니다

<ul id="menu" class="aaa"> 
<li><a id="one" name="one" href="#">one</a></li> 
<li><a id="two" name="two" href="#">two</a></li> 
<li><a id="three" name="three" href="#">three</a></li></ul> 

자바 스크립트가 비록 올바른 것 같았다.