0

次のドロップダウン メニューがあります。各メニューをクリックして、各メニューを対応するページにリダイレクトするにはどうすればよいですか? はいの場合、1つのjavascript関数を使用して可能ですか? 前もって感謝します...

<div>
 <ul>
  <li id=home onclick="show(this.id)"><a href="home.jsp">Home</a></li>
  <li id=collection onclick="show(this.id)><a href="collection.jsp">Collection</a></li>
     <ul>
       <li id=men onclick="show(this.id)><a href="men.jsp">Men</a></li>
       <li id=women onclick="show(this.id)><a href="women.jsp">Women</a></li>
     </ul>
  <li id=contact onclick="show(this.id)><a href="contact.jsp">Contact</a></li>
</ul>
</div>
4

4 に答える 4

1

はい、できます。

あなたの場合の使用window.open("URL")URLはthis.id

また、更新することができますwindow.location

詳細はこちらhttp://www.tizag.com/javascriptT/javascriptredirect.php

ニコが言ったように、あなたは引用符を閉じる必要があります

.. onclick="window.open(this.id)" ..
于 2012-04-25T17:04:07.923 に答える
0

あなたの場合、コンポーネントIDであるパラメーターに基づいてリダイレクトするJS関数のみが必要な場合は、これでうまくいきます:

<script type="text/javascript">
    var show = function(id) {
        window.location.href = id + '.jsp';
    };
</script>

DOM をナビゲートしてリンクの href 属性を取得する場合:

document.getElementById(id).firstChild.href

ID によって参照されるコンポーネント内の最初の要素がリンク タグであることを考慮します。

于 2012-04-25T17:20:27.537 に答える
0

これは意味がありません。

あなたの特定の機能要件は、エンドユーザーがリンクの<li> 外側のスペースのどこかをクリックしたときにリンクを呼び出すことであると理解しています。これを実現するには、要素の CSSdisplayプロパティを に設定するだけです。このようにして、リンクはその親要素のスペース全体に広がります。<a>block

<ul id="menu">
  <li><a href="home.jsp">Home</a></li>
  <li><a href="collection.jsp">Collection</a></li>
     <ul>
       <li><a href="men.jsp">Men</a></li>
       <li><a href="women.jsp">Women</a></li>
     </ul>
  <li><a href="contact.jsp">Contact</a></li>
</ul>

このCSSで

#menu li a {
    display: block;
}

見苦しい JavaScript ハックは必要ありません。現在のウィンドウで新しい JSP ページの場所を開くのは、 によって実行されwindow.location = 'some.jsp';ます。ただし、具体的な問題に適切なソリューションを使用する場合、これは必要ありません。今後の質問では、特定の機能要件に適したソリューションであると考えたソリューションだけに集中するのではなく、機能要件について詳しく説明してください。

于 2012-04-25T17:28:46.570 に答える
0

これを試して?

$("div > ul li a").click(function() {
    window.location.href += "/" + $(this).parent()[0].id;
});

HTML を変更しないセレクターを使用しようとしたため、見栄えが悪くなります。

于 2012-04-25T17:04:25.167 に答える