2 つのイベントの発生を可能にする jQuery スクリプトを作成しようとしています。
.current
ページがロードされたときに 最初のタブのコンテンツ ( ) のみが表示される、タブ付きコンテンツを作成します。.toggle_tabs
すべてのタブ付きコンテンツの表示を切り替える「すべてのタブ付きコンテンツを表示」ボタン ( ) を作成します。
コードは、各タブのコンテンツを正常にタブ化しています。問題はこれです:
- ページをロードしてから をクリックすると、ページが最初にロードされたとき
.toggle_tabs
にクラスを持つ.current
タブは、コンテンツが表示されない唯一のタブです - ページを読み込むと、いずれかのタブを 1 回クリックしてから をクリック
.toggle_tabs
すると、すべてのタブ付きコンテンツが表示されます。
最初にいずれかのタブをクリックすることなく、クリックしたときにすべてのタブ付きコンテンツを表示するにはどうすればよい.toggle_tabs
ですか?
現在のコード:
/* jQuery */
$('#hb_container div.tab-link').click(function () {
var tab_id = $(this).data('tab');
$('#hb_container div').removeClass('current');
$('.tab-content').removeClass('current').removeClass('active');
$(this).addClass('current');
$("#" + tab_id).addClass('current').addClass('active');
});
$('.toggle_tabs').click(function () {
$('.tab-content').each(function () {
if ( ($(this).hasClass('current')) && ( $(this).hasClass('active') === false) ) {
$(this).removeClass('current');
} else {
$(this).addClass('current');
}
});
});
/* Tabs */
<div id="hb_container">
<div class="tab-link current" data-tab="tab-1"><div class="tab-link-inner">Job<br>Info</div></div>
<div class="tab-link" data-tab="tab-2"><div class="tab-link-inner">Asb.<br>By</div></div>
<div class="tab-link" data-tab="tab-3"><div class="tab-link-inner">Apl.<br>No.</div></div>
<div class="tab-link" data-tab="tab-4"><div class="tab-link-inner">Struc.<br>Eng.</div></div>
</div>
/* Tabbed content */
<div id="tab-1" class="tab-content current" style="margin-top: 24px">
<div class="tab-content-title">Attachment Upload</div>
<div class="single_col_container">
<div id="frm_field_[id]_container" class="frm_form_field form-field [required_class][error_class]">
[input]
</div>
</div>
</div>
<div id="tab-2" class="tab-content" style="margin-top: 24px">
<div class="tab-content-title">Job Info</div>
<div class="single_col_container">
<div id="frm_field_[id]_container" class="frm_form_field form-field [required_class][error_class]">
[input]
</div>
</div>
</div>
/* CSS */
#hb_container {
margin: 8px 0 8px 8px;
width: 984px;
height: 54px;
}
.tab-content {
display: none;
}
.tab-content.current {
display: inherit;
}
.tab-link {
background: #222;
color: #ddd;
cursor: pointer;
float: left;
font-family: Roboto;
font-size: 12px;
font-weight: bold;
letter-spacing: 1px;
line-height: 14px;
margin: 0 8px 0 0;
width: 54px !important;
height: 54px;
}
.tab-link:hover {
background: #181818;
color: #ffcc00;
}
.tab-link-inner {
margin-top: 11px;
}