同じページに複数のリンクがありますが、そのページの異なるセクション(ページの上部に表示されることが望ましい)が必要です。問題は、これらのセクションはページの読み込み時に隠されているので、コンテナも表示されます。コンテナを表示する方法を解決しましたが、クリックしたセクションだけをリンク、表示する。すなわち:私はこのHTMLを持ってserviceCheck1
ページのその後隠されたリンクから特定のセクションを表示する方法
<a href="serviceCheck1#service1">Service 1</a>
<a href="serviceCheck1#service2">Service 2</a>
<a href="serviceCheck1#service3">Service 3</a>
:
私はこれらのリンクを持っている
<div id="service-display-box">
<div id="service-display-box-container">
<div class="service-item-box" id="service1">
<div class="service-item-title">Service 1</div>
</div>
<div class="service-item-box" id="service2">
<div class="service-item-title">Service 2</div>
</div>
<div class="service-item-box" id="service3">
<div class="service-item-title">Service 3</div>
</div>
<div class="service-item-box" id="service4">
<div class="service-item-title">Service 4</div>
</div>
<div class="service-item-box" id="service5">
<div class="service-item-title">Service 5</div>
</div>
<div class="service-item-box" id="service6">
<div class="service-item-title">Service 6</div>
</div>
</div>
</div>
私が言うのリンク、サービスの2をクリックしたい場合、私は希望service-display-box
が表示され、次に#service2
divが表示され、そのすべての兄弟が表示されないようにします。あなたは可視性を制御し、単にあなたのJSを持つクラスを切り替えるには、CSSを使用して試みることができる
$(function(){
//get the section name from hash
var sectionName = window.location.hash.slice(1);
//then show the section
$('#service-display-box').show();
//$('#' + sectionName).show();
$('#service' + sectionName).show().siblings().hide();
})
/*var index = location.hash.indexOf('#service');
if(index > -1) {
var serviceId = parseInt(location.hash.substring(index));
if(serviceId) {
$('#service-display-box').show();
$('#service' + serviceId).show().siblings().hide();
}
}*/
あなたの 'sectionName'変数は、コードの最初の行の後に' 'section1" 'を含みます。だから、最後の行は '$( '#sectionsection1')...というように出てくるでしょう。あなたの望むものではないようです。 –
@MikeMcCaughanだから、 '#1'だけを表示するか、' $( '#service' + sectionName).show()。siblings()。hide(); '? – Becky
私はそれをやろうとしましたが、結果は変わりませんでした。 – Becky