0

jQuery タブを使用しようとしていますが、解決できない問題があります。

ドキュメントの本文のどこかに、次のものがあります。

<ul class="tabs-horizontal">
    <li id="a" class="current"><a href="#">Tab A</a></li>
    <li id="b"><a href="#">Tab B</a></li>
</ul>

私のスクリプトセクションには、次のものがあります。

<script type="text/javascript">

    $(document).ready(function(){

        var activeTabIndex = -1;
        var tabNames = ["a","b"];

        $(".tabs-horizontal > li").click(function(e){
            for(var i=0;i<tabNames.length;i++) {
                if(e.target.id == tabNames[i]) {
                    activeTabIndex = i;
                } else {
                    $("#"+tabNames[i]).removeClass("current");
                }
            }
            $("#"+tabNames[activeTabIndex]).addClass("current");
            return false;
        });
    });

</script>

要素と比較e.target.idしているので機能しません。tabNamesデバッグしたところ、 return が見つかりましe.target.id-1

liでは、これら 2 つのID (つまり"a""b")を取得するにはどうすればよいでしょうか。

ありがとう。

4

4 に答える 4

6
$(".tabs-horizontal > li").click(function(e) {
      $(this).addClass("current").siblings().removeClass("current");
      return false;
});
于 2013-06-19T06:37:22.573 に答える
4

jQuery イベント ハンドラー内ではthis、イベントをフックした DOM 要素になります。li要素にイベントをフックしているのでthis.id、それらの ID になります。

ただし、ID は必要ありません。トラバーサルを使用して、やろうとしていることを実行できます。方法を示そうとしましたが、undefined には既に.

于 2013-06-19T06:37:30.307 に答える
1

e.target は、li 内の a リンクを指します。あなたが使用する必要がありますe.target.parentElement.id

于 2013-06-19T06:42:07.060 に答える