jQuery 从 URL 设置事件选项卡

标签 jquery tabs

我有这个选项卡系统:

$(document).ready(function(){
    $('#tabs div').hide();
    $('#tabs div:first').show();
    $('#tabs ul li:first').addClass('active');
    $('#tabs ul li a').click(function(){
        if($(this).parent().hasClass('active')) {
            /** active **/
        } else {
            $('#tabs ul li').removeClass('active');
            $(this).parent().addClass('active');
            var currentTab = $(this).attr('href');
            $('#tabs div').hide();
            $(currentTab).show('slide', {}, 500);
        }
        return false;
    });
});

<div id="tabs">
        <ul>
            <li><a href="#tab-1">1</a></li>
            <li><a href="#tab-2">2</a></li>
            <li><a href="#tab-3">3</a></li>
            <li><a href="#tab-4">4</a></li>
            <li><a href="#tab-5">5</a></li>
        </ul>

        <div id="tab-1">
Content tab1
</div>
<div tab2... etc

如果我在 URL 末尾添加 #tab-3,它应该会自动显示选项卡 3 并将其设置为事件状态,而无需我单击它。

这可以通过简单的方式实现吗?

最佳答案

进一步查看代码后进行编辑 -

如果每次 DOM 准备好时都在这两行中编写代码,您总是会看到第一个选项卡。

$('#tabs div:first').show();
$('#tabs ul li:first').addClass('active');

在决定是否应该显示第一个选项卡之前,您必须先检查“#tab”的网址。

$(function(){
    ...
    var hash = window.location.hash;
    if(hash){
        $('a[href="' + hash +'"]').parent('li').addClass('active');
        var elementID = hash.replace('#', '');
        $(elementID).show();
    } else {
        $('#tabs div:first').show();
        $('#tabs ul li:first').addClass('active');
    }
    ...
}

关于jQuery 从 URL 设置事件选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11889365/

相关文章:

jquery - 如何使用 JQuery 在选中时突出显示复选框

java - 如何通过选项卡导航activity的布局 android java

html - 改变 ionic 上的 ion-tabs 高度

jquery - OS X/Safari 10.1/google 字体问题

javascript - 替换字符串的特定标签

javascript - JQuery 验证工作正常,但 SubmitHandler 不工作

jquery - 使用 jQuery 应用 css3 渐变

c++ - 没有选项卡的 MFC 选项卡控件?

android - 在 React Native 中构建选项卡式抽屉导航 ListView

jquery - 在 Bootstrap 选项卡 View 中更改选项卡样式