javascript - 使用 setTimeout 刷新页面后,显示页面刷新前显示的选项卡

标签 javascript jquery html

我正在使用 jQuery 选项卡,在我的一个选项卡上有一个功能可以刷新页面,然后在刷新后显示相同的选项卡。

这是我目前所拥有的,但它似乎没有将选项卡设置为事件状态:

setTimeout(function(){ 
    location.reload();
    $("#tabs").tabs({ active: 1});
}, 1000);

我的标签:

<div id="tabs">
    <ul id ="tabList" style="line-height: 3.3;">
        <li><a href="#tabs-1">Carrier Details</a></li>
        <li><a href="#tabs-2">Contacts</a></li>
    </ul>
    <%--This is Carrier Details Tab--%>   
    <div id="tabs-1">
        <%@include file="carrierProfileDetails.jspf" %>
    </div>
    <%--This is Contacts Tab--%>  
    <div id="tabs-2">
        <%@include file="carrierProfileContacts.jspf" %>
    </div>
</div>

我希望在刷新后显示联系人选项卡。

最佳答案

您可以使用 sessionStorage对于您的情况,您可以设置/获取/更新数据,刷新后即可访问。这是一个简单的例子,但它在代码片段中不起作用,你可以在本地创建 HTML 页面并检查它(它在本地工作正常):

<body>
  <h1>Active tab: <span id="tab-number"></span></h1>

  <button onclick="changeTab('1')">Tab 1</button>
  <button onclick="changeTab('2')">Tab 2</button>
  <button onclick="changeTab('3')">Tab 3</button>

  <script>
      var ssActiveTab = sessionStorage.getItem('activeTab');
      if (ssActiveTab) {
          changeTab(ssActiveTab);
      }
      function changeTab(newTab) {
          document.getElementById('tab-number').innerText = newTab;
          sessionStorage.setItem('activeTab', newTab);
      }
  </script>
</body>

主要思想是在每次更改时将选项卡的当前状态设置为 sessionStorage,并在页面加载时从中获取最后状态。如果项目存在并具有值 - 然后根据此数据设置状态。

关于javascript - 使用 setTimeout 刷新页面后,显示页面刷新前显示的选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49905409/

相关文章:

html - 如何以编程方式在 JQM 中创建 ListView

基于 CSS 的移动主题 - JQM 样式 "linked lists"不使用完整的 JQM 框架

html - 页面上的两个 <li> 元素,具有不同的样式

javascript - Jquery Keypress + .val() 问题

jquery - 如何仅在半圈内制作动画

javascript - 使用 jQuery 的 inArray 时,'length' 为 null 或者不是 IE 中的对象

javascript - 在窗口加载时显示加载图像,直到 DomContentLoaded

javascript - spring modelandview 重定向在 jquery ajax 调用中不起作用

javascript - Express 中的分隔路线

javascript - 从 HTML 脚本源文件中获取 javascript url 参数