0

私は 2 つの html ページを持っています。最初の html で何かをクリックすると、2 番目の html に移動します。私がやりたいことは、最初の html でクリックした内容に従ってテキストを表示することです。異なるテキストは異なる ID でラップされます。これが私が書いた方法です:

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

two.html が ID "one" のテキストをロードすることを期待していますが、うまくいきません。

2ページ目のコードは次のとおりです。

<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」のテキストと写真が表示されます。

しかし、クリックすると「2」の写真とテキストが表示されます。

4

5 に答える 5

2

あなたがしたいことは、ページの読み込み時にアンカーのクリックをシミュレートすることです。jQuery を使用しているため、最も単純なアプローチ (ただし、最良の方法) は次のとおりです。

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

ondomready-event をウィンドウにアタッチします。id=one の要素を取得し (jQuery では、これは location.hash と同じように「#one」になります。この場合は非常に便利です)、クリックをトリガーします。

$(location.hash).click(); を置き換える必要があるかもしれません。jQuery は jQuery オブジェクトの配列を返す傾向があるため、 $(location.hash).get(0).click() を使用します。

しかし、あなたの場合のより良い解決策は、手動でトリガーできるイベントハンドラーを用意することです。これにより、イベントを発生させる必要がなくなり、アンカーをドロップして、li に onclick を直接配置できます。

さらに、コンテンツを動的に表示/非表示にしたいだけなのに、なぜ 2 番目のページをロードするのでしょうか? 同じページでやって...

于 2008-11-06T17:53:02.757 に答える
1

#blastuffbla は ID ではなく、場所のハッシュです。次を使用してアクセスできます。

self.document.location.hash

これは #hash を返します。ハッシュのみが必要な場合は、次を使用します。

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

お役に立てれば

于 2008-11-06T17:47:45.713 に答える
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>

あなたのjavascriptは正しいように見えました。

于 2008-11-06T19:21:49.377 に答える
0

「異なるID」と言うとき、2ページ目にアンカーをどのように設定していますか? 2 ページ目のアンカーは次のようになります。

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

これを、2 ページ目でマークしたいテキストのすぐ上に置きます。

于 2008-11-06T17:46:08.947 に答える
0

ID「one」の位置までページをスクロールしますか?ページのコンテンツが小さすぎてスクロールできない場合があります。つまり、ブラウザが id でマークされた要素をキャンバスの上部に移動できず、そこでスクロールされていないように見えることがあります。ブラウザの上部までスクロールできるように、要素の後に十分なスペースを含めるようにしてください。

それが役立つことを願っています。

于 2008-11-06T17:49:37.317 に答える