2012-02-28 12 views
0

ページがロードされたときに、誰かが最初のタブをロードするのを手伝ってください(アクティブにする)。今すぐjqueryのタブは、クリックした後にうまく動作します。ページがロードされたときに最初のタブを表示する

HTML

<a class="link" href="#" rel="div1">Tab 1</a> 
<a class="link" href="#" rel="div2">Tab 2</a> 

<div class="content5" id="div1">Content of Tab 1</div> 
<div class="content5" id="div2">Content of Tab 2</div> 

Javascriptを/ jQueryの

$('.link').click(function(e) { 
    e.preventDefault(); 
    var content = $(this).attr('rel'); 
    $('.active').removeClass('active'); 
    $(this).addClass('active'); 
    $('.content5').hide(); 
    $('#' + content).show(); 
});​ 

任意のアイデア:

私はこのコードを使用していますか?

答えて

2
$(document).ready(function() { 
    $('.link:first').addClass('active'); 
}); 
+0

これは、またはどのようなクラスのUIタブでもアクティブなタブに追加します – Johan

+0

ありがとうございます。できます!ページが読み込まれた後、2番目のタブコンテンツ(div2)のみが非表示になりません。私は$( '。content5#div2')を入れようとしました。準備ができている機能では動作していません。 編集:申し訳ありません:$( '。content5:last')。hide(); – Erikdg

0

あなたは、結合後の最初のリンクをクリックを誘発することができます。

$('.link') 
    .click(function(e) { 
     ... 
    }) 
    .first().click(); // or .trigger('click') 

.click()/.trigger('click')

0

ただ、すなわち、それが見えるようにHTMLとCSSを使用します。

タブ1 タブ2

タブ1の内容 タブ2の内容

したがって、最初のリンクはクラスactiveで始まり、最初のタブはdisplay:blockで可視として開始されます。

1

私は表示ロジックをカプセル化します。

function showTab(jqEl) { 
    var content = jqEl.attr('rel'); 
    $('.active').removeClass('active'); 
    jqEl.addClass('active'); 
    $('.content5').hide(); 
    $('#' + content).show(); 
}; 

必要に応じて呼び出します。

$('.link').click(function(e) { 
    e.preventDefault(); 
    showTab($(this)); 
}); 

$().ready(function() { 
    showTab($(".link[rel=div1]")); //or better 
}); 
0

あなたは関数内のコードをラップすることはできますか?イベントの内部から関数を呼び出し、オブジェクト$(this)を渡します。 。私はあなたが使用しているjqueryのわからないが、単純な方法で、以下のように、ページの読み込み中にタブをロードしようとする最初の()

0

(「.link」)を渡して、ページの読み込みの関数を呼び出します。

$(document).ready(function() { 
      $("#tabs").tabs({ selected: 1 }); 
     }); 
関連する問題