次のコードを使用して、デフォルトで最初のタブを表示しています。
// SELECT OUR FIRST TAB BY DEFAULT
$('.tabs-nav LI:first').addClass('active');
$('.tabContent').hide();
$('.tabContent:first').show();
// FORWARD TAB LI CLICKS TO TAB A CLICKS
$('.tabs-nav LI').click(function(e){
e.preventDefault();
$(this).find('A').click();
return false;
});
// INTERCEPT TAB A CLICKS TO SET THE ACTIVE TAB AND SHOW TAB PANEL.
$('.tabs-nav LI A').click(function(e){
e.preventDefault();
$('.tabs-nav LI').removeClass('active');
$('.tabContent').hide();
$(this).parent().addClass('active');
var sID = $(this).attr('href');
sID = sID.split('#').join('');
$('#' + sID).fadeIn(400, function() {
$(window).trigger('resize');
});
return false;
});
});
タブを表示するための私のコードは次のとおりです。
<?php
$aerialSlider = do_shortcode('[property_attribute attribute=aerial_slider]');
$propertySlider = do_shortcode('[property_attribute attribute=property_slider]');
$lodgecabinSlider = do_shortcode('[property_attribute attribute=lodgecabin]');
$wildlifeSlider = do_shortcode('[property_attribute attribute=wildlife_slider]');
$videosSlider = do_shortcode('[property_attribute attribute=videos_slider]');
?>
<div class="tabs">
<h1>PHOTO GALLERY</h1>
<ul class="tabs-nav">
<?php if(empty($aerialSlider)) {
} else {
echo '<li><a href="#tab1" >AERIALS</a></li>';
}
?>
<?php if(empty($propertySlider)) {
} else {
echo '<li><a href="#tab3" >PROPERTY</a></li>';
}
?>
<?php if(empty($lodgecabinSlider)) {
} else {
echo '<li><a href="#tab2" >LODGE/CABIN</a></li>';
}
?>
<?php if(empty($wildlifeSlider)) {
} else {
echo '<li><a href="#tab4" >WILDLIFE</a></li>';
}
?>
<?php if(empty($videosSlider)) {
} else {
echo '<li><a href="#tab5" >VIDEOS</a></li>';
}
?>
</ul>
これを行うと、ユーザーはショートコードを挿入してタブに表示することができ、ショートコードはギャラリーを表示するだけです。次に、そのフィールドのメタボックスに何も入力されていない場合、タブが表示されないように作成しました。そこに何もない場合、タブを表示しても意味がありません。問題は、最初のタブ メタ フィールドに何も挿入されていない場合、ギャラリー スペースが折りたたまれていることです。タブをクリックすると表示されます。
問題は、jquery が最初のタブをターゲットにしているようですが、最初に表示されるタブをデフォルトのタブにする必要があります。私の問題が明確だったことを願っています。誰でも私を助けることができますか?jqueryに関しては初心者なので、どんな助けでも大歓迎です。
前もって感謝します!