重新加载页面后保持活动的 jQuery UI 选项卡和与其相关的子选项卡

Posted

技术标签:

【中文标题】重新加载页面后保持活动的 jQuery UI 选项卡和与其相关的子选项卡【英文标题】:Keep active jQuery UI tab and related to it sub-tab after reloading page 【发布时间】:2018-11-17 09:11:19 【问题描述】:

我想在。 目前,我只保留标签。

我使用下一个脚本:

$(".tabs").tabs(
    active: localStorage.getItem("currentIdx"),
    activate: function (event, ui) 
    localStorage.setItem("currentIdx", $(this).tabs('option','active'));
               );

https://codepen.io/evgenydym/pen/YvGRER

【问题讨论】:

【参考方案1】:

您可以使用在会话存储中存储值来做到这一点:

https://codepen.io/creativedev/pen/PaGerK

$(document).ready(function () 
    var i = "0";
    var j ="0";
      $tab = $(".tabs").tabs(  
         activate : function (e, ui) 
            tabid = ui.newPanel.attr('id');
            if(tabid.indexOf("sub") != -1)
              sessionStorage.setItem('sub-tab-index', ui.newPanel.attr('id'));
            else
                sessionStorage.setItem('tab-index', ui.newPanel.attr('id'));
            
         
    );

    if (sessionStorage.getItem('tab-index') != null) 
        i = sessionStorage.getItem('tab-index');
        if(i !='')
            $('.tabs li').each(function()
             var ac =  $(this).attr('aria-controls');

             if(ac.indexOf("sub") == -1)
                $(this).removeClass("ui-tabs-active ui-state-active");
                console.log(ac)
                console.log($('#'+ ac).css('display', 'none'));
             
           );
            $("#"+i).css('display','block');
            $('.tabs').find("[aria-controls='"+i+"']").find('a').trigger('click');
           $('.tabs').find("[aria-controls='"+i+"']").addClass('ui-tabs-active ui-state-active');
           //sessionStorage.removeItem('tab-index')
        
    

   if (sessionStorage.getItem('sub-tab-index') != null) 
         j = sessionStorage.getItem('sub-tab-index');
         if(j !='')
             $('.tabs li').each(function()
                 var ac1 =  $(this).attr('aria-controls');
                 if(ac1.indexOf("sub") != -1)
                    $(this).removeClass("ui-tabs-active ui-state-active");
                 
               );

            $('.tabs').find("[aria-controls='"+j+"']").find('a').trigger('click');
            $('.tabs').find("[aria-controls='"+j+"']").addClass('ui-tabs-active ui-state-active');
          //  sessionStorage.removeItem('sub-tab-index');
         
    
);

【讨论】:

感谢您的快速回复。您的示例与选项卡相关,但我很想知道如何为子选项卡实现相同的功能。

以上是关于重新加载页面后保持活动的 jQuery UI 选项卡和与其相关的子选项卡的主要内容,如果未能解决你的问题,请参考以下文章

页面重新加载后,如何使用 twitter bootstrap 保持当前选项卡处于活动状态?

重新加载页面后保持按钮处于活动状态(使用 PHP 和 HTML)

通过jquery滑块发送获取请求并在页面重新加载后保持滑块上的值[重复]

如果选项卡未处于活动状态,jqgrid 无法在 jquery-ui 选项卡下正确加载

将页面加载到 div 中并选择特定的 jQuery UI 选项卡

Next.js 在下一页的 getInitialProps 完成加载时保持当前页面处于活动状态并重新渲染