我使用以下代码切换标签。但问题是如果我用#将url id放在url中,它就不会转到那个特定的标签。
<a href="index.php#tab2">Tab 2</a>
<a href="index.php#tab3">Tab 3</a>
以下是代码
jQuery(document).ready(function() {
jQuery('.tabs .tab-links a').on('click', function(e) {
var currentAttrValue = jQuery(this).attr('href');
// Show/Hide Tabs
jQuery('.tabs ' + currentAttrValue).show().siblings().hide();
// Change/remove current tab to active
jQuery(this).parent('li').addClass('active').siblings().removeClass('active');
e.preventDefault();
});
});
html代码
<ul class="tab-links">
<li class="active"><a style="" href="#tab1">Account</a></li>
<li><a href="#tab2">Jobs Posted</a></li>
<li><a href="#tab3">Messages</a></li>
<li><a href="#tab4">Post A Job</a></li>
</ul>
<div class="tab-content">
<div id="tab1" class="tab active" style="padding-bottom:30px;">
</div>
<div id="tab1" class="tab" style="padding-bottom:30px;">
</div>
<div id="tab1" class="tab" style="padding-bottom:30px;">
</div>
</div>
答案 0 :(得分:2)
您可以尝试修改此行:var currentAttrValue = jQuery(this).attr('href').split("#")[1];
表示您获得了链接"tab2"
属性的href
部分
jQuery(document).ready(function() {
var changeTab = function(id) {
// Show/Hide Tabs
jQuery('.tab-content #' + id).show().siblings().hide();
// Change/remove current tab to active
jQuery('.tab-content #' + id + ':visible').addClass("active").siblings().removeClass('active');
};
jQuery('.tabs .tab-links a').on('click', function(e) {
e.preventDefault();
// Here you will get the tab id, comming from the clicked hyperlink
var currentAttrValue = jQuery(this).attr('href').split("#")[1];
// Change/remove current tab to active
jQuery(this).parents("li").addClass("active").siblings().removeClass('active');
changeTab(currentAttrValue);
});
var tab = document.location.href.split("#");
if(tab.length > 0) {
var id = tab[1];
jQuery('.tabs .tab-links a[href="#' + id + '"]').click();
window.addEventListener("load",function() {
jQuery(window).scrollTop(0);
},true);
}
});
&#13;
.active {
color:red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="tab-content">
<div id="tab1" class="tab active" style="padding-bottom:30px;">tab 1 content
</div>
<div id="tab2" class="tab" style="padding-bottom:30px;">tab 2 content
</div>
<div id="tab3" class="tab" style="padding-bottom:30px;">tab 3 content
</div>
</div>
<div class="tabs">
<div class="tab-links">
<a href="index.php#tab1">Tab 1</a>
<a href="index.php#tab2">Tab 2</a>
<a href="index.php#tab3">Tab 3</a>
</div>
</div>
&#13;