如何从基于URL的默认选项卡移动到另一个选项卡的活动类?
问题描述:
我想要一个约翰的选项卡在页面加载时使用“active”类来激活。但是,如果URL以特定的hashtag结尾(在本例中为#cindy),我希望Cindy的选项卡在页面加载时激活(例如:'www.index.html#cindy')。如何从基于URL的默认选项卡移动到另一个选项卡的活动类?
到目前为止,我已经获得了激活John标签的页面,但我不知道要从这里开始去Cindy的基于URL的标签页。
任何帮助,将不胜感激。
CSS
#main-container .onPage.active {
display: block;
}
#main-container .onPage {
display: none;
}
HTML
<div id="main-container">
<div class="box">
<div class="btnList" id="tabs">
<ul>
<li>
<a class="tab linkSection" href="#james"><span>James</span></a>
</li>
<li>
<a class="tab linkSection" href="#cindy"><span>Cindy</span></a>
</li>
</ul>
</div>
<div class="onPage" id="james">
<div>
<h1 class="icon"><span class="b"></span>Meet James</h1><br>
</div>
</div>
<div class="onPage" id="cindy">
<div>
<h1 class="icon"><span class="b"></span>Meet Cindy</h1><br>
</div>
</div>
</div>
</div>
JS
$(document).ready(function() {
$("div#james.onPage").addClass("active");
});
答
从网址获取哈希值,并检查它是否为空,并从中决定哪一个激活。
$(document).ready(function() {
var hash = window.location.hash;
if(hash) {
$("div" + hash + ".onPage").addClass("active");
} else {
$("div#james.onPage").addClass("active");
}
});
答
您可以使用window.location.hash
从网址获取散列。
$(document).ready(function() {
var hash = window.location.hash;
if($("div" + hash + ".onPage").length > 0) {
$("div" + hash + ".onPage").first().addClass("active");
} else {
$("div#james.onPage").addClass("active");
}
});
+0
谢谢,但不幸的是,这使得两个标签默认情况下都处于活动状态。 – Addy
+0
我更新了我的答案。如果散列不存在,那么'first()'主动第一个选项卡,否则主动散列元素。 @Addy –
谢谢,这是一个很好的基础,我解决了这个问题:'$(document).ready(function(){var hash = window.location.hash; \t if(hash ===“ #cindy “){ \t \t $(” 格 “+ ”#cindy“ +” .onPage “)addClass(” 主动“); \t}否则,如果(哈希=== ”#james“){ \t (“div”+“#james”+“.onPage”).addClass(“active”); \t} else { \t \t $(“div#james.onPage”).addClass(“active”) ; \t} }); ' – Addy