0

Twitter ブートストラップを使用しています。アクティブなタブをクリックすると、アクティブなタブ コンテンツが閉じます。

私はこのコードを使用していますが、これは機能していません:

$('#myTab a').click(function (e) {
    if ($(this).parent('li').hasClass('active')) {
        $($(this).attr('href')).removeClass('active');
        $(this).parent('li').removeClass('active');
    } else {
        e.preventDefault();
        $(this).tab('show');
    }
});
4

2 に答える 2

0

これは機能していますが、完全ではありません。bootstrap.js を編集してこれを置き換えます

  $(document).on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
    e.preventDefault()
    $(this).tab('show')
  })

これで

      $(document).on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
  e.preventDefault();
      if($(this).parent('li').hasClass('active')){

       $( $(this).attr('href') ).removeClass('active'); 
        $(this).parent('li').removeClass('active');
       if ( $(this).parent('.dropdown-menu') ) {
              $(this).closest('li.dropdown').removeClass('active')
            }
        }
        else {
            e.preventDefault();
            $(this).tab('show');
        }
      })

しかし、ドロップダウンタブの子メニューがアクティブな場合、そのドロップダウンタブをクリックすると、クラス「アクティブ」がそのドロップダウンタブから削除され、それが子メニューのタブコンテンツになります。

下手な英語でごめんなさい。

于 2013-05-15T06:22:07.273 に答える
0

これは私にとってはうまくいきます。「アクティブな」クラスを削除すると改善されます

$('#myTab a').click(function (e) {
  if($(this).parent('li').hasClass('active')){
    $(this).removeClass('active')
    $( $(this).attr('href') ).removeClass('active');
  }
  else {
    e.preventDefault();
    $(this).tab('show');
  }
});

ここで確認できますhttp://jsfiddle.net/tekbreak/NQ97h/182/

ただし、すべてのタブセレクターで発生させる必要がある場合は、このjQueryセレクターを使用してください

$('a[data-toggle="tab"]').click(...
于 2014-04-05T04:03:10.397 に答える