これは非常に基本的な質問ですが、答えを見つけるのに苦労しています-HTMLメニューのリスト項目がクリックされたときに実行されるアクションを実装するにはどうすればよいですか?
コード内のリストをメニューとして使用しています。たとえば、次のようになります。
<ul >
<li id="link1"><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a>
<ul class="level2">
<li><a href="#">Link 2a</a></li>
<li><a href="#">Link 2b</a></li>
<li><a href="#">Link 2c</a></li>
</ul></li>
</ul>
メニューにid、id = "myMenu"、およびonclickイベントを指定しようとすると、jsが呼び出されましたが、クリックされたアイテムを識別する方法がわかりませんでした。myMenuでラインアイテムがクリックされただけです。
<ul id="myMenu" onclick="gothere(id)">
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a>
<ul class="level2">
<li><a href="#">Link 2a</a></li>
<li><a href="#">Link 2b</a></li>
<li><a href="#">Link 2c</a></li>
</ul></li>
</ul>
<script type="text/javascript">
function gothere(id)
{
alert("got here "+id) ;
}
</script>
子要素id="link1"にIDを追加しようとしましたが、それは機能しましたが、jsが子に対して呼び出され、次に親に対して呼び出されました。
<ul id="myMenu" onclick="gothere(id)">
<li id="link1" onclick="gothere(id)"><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a>
<ul class="level2">
<li><a href="#">Link 2a</a></li>
<li><a href="#">Link 2b</a></li>
<li><a href="#">Link 2c</a></li>
</ul></li>
</ul>
このアプローチを使用して必要なものを取得できますが、より良い方法はありますか?
送信するHTMLの量が最も少ないものを探しています(以前の実装からこのメニューをやり直している理由)。