0

クリックで div コンテンツをリンク ID の例に変更するようにコードを変更するのに助けが必要です: 最初のリンクをクリックすると、1 などを出力します。また、一意のリンク #first があります。また、デフォルトでは「デフォルト」と表示されます

<script src="jquery.js"></script>
<script src="jquery.bbq.js"></script>
<script>
$(function () {
  var tabContainers = $('div.tabs > div');
  tabContainers.hide().filter(':first').show();

  $(window).bind('hashchange', function () {
    var hash = window.location.hash || '#first';

    tabContainers.hide();
    tabContainers.filter(hash).show();
    $('div.tabs ul.tabNavigation a').removeClass('selected');
    $('a[hash=' + hash + ']').addClass('selected');
  });

  $(window).trigger( "hashchange" );
});
</script>
<ul class="tabNavigation">
    <li><a href="#first" id="1">First</a></li>
    <li><a href="#second" id="2">Second</a></li>
    <li><a href="#third" id="3">Third</a></li>
</ul>
<div class="tabs">
    Change content here
</div>
4

2 に答える 2

1

window.location.hashは通常、ハッシュがない場合に空の文字列を返し、hrefではなくアンカーを確認する必要がありますhash。アンカーが.tabs要素内にあるようにも見えませんか?

$(function () {
    $(window).on('hashchange', function () {
        var tabContainers = $('.tabs > div'),
            hash = window.location.hash != '' ? window.location.hash : '#first';

        tabContainers.hide();
        tabContainers.filter(hash).show();
        $('.tabNavigation li a').removeClass('selected');
        $('a[href="' + hash + '"]', '.tabNavigation').addClass('selected');
    }).trigger('hashchange');
});

私はあなたが実際に ID がアンカー href.tabsと一致する要素を内部に持っていると思いますが、それは例のように空ではありませんか?

デモンストレーション

于 2013-03-01T17:01:48.617 に答える
1

これを試してください:

$('#1').click(function(){ $('.tabs').html('Your Text'); })

idを受け入れ、dom ツリーの適切な場所に値を設定する関数にこれを含めることができます。

タグはデフォルト アクションを実行するaべきではないためa、同じことを防止する必要があります。

于 2013-03-01T16:49:50.317 に答える