javascript - 页面重新加载后保持事件选项卡时加载ajax内容(Bootstrap 4)

标签 javascript jquery ajax twitter-bootstrap tabs

我创建了一个包含许多选项卡的页面 为了在第一次显示时不减慢页面的加载速度,只有单击它才能获取选项卡的内容

然后我将其设置为保存最后一个事件选项卡:

$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
    localStorage.setItem('activeTab', $(e.target).attr('href'));
});

var activeTab = localStorage.getItem('activeTab');
if(activeTab){
    $('.nav-tabs a[href="' + activeTab + '"]').tab('show');
}

效果很好,当我重新加载页面时,我很好地落在了最后访问的选项卡上

但是问题是,它不加载 Ajax 内容(甚至不加载简单的警报)

演示:https://jsfiddle.net/ak37besp/1/

如何到达最后使用的选项卡,然后加载相应的 Ajax?

最佳答案

代码中的问题是,您在重新加载页面后没有调用任何加载ajax内容的函数,您只是设置了事件选项卡。

为此,请在代码中创建一个名为 loadTabContent(tab) 的函数,该函数将选项卡 ID 作为参数并加载 ajax 内容:

function loadTabContent(tab) {
    if (tab == '#tab2'){
    alert("ajax loaded tab2");
    //load ajax content for tab 2 here
  }
}

然后,当从 localStorage 检查和设置事件选项卡时,调用创建的函数:

// read hash from page load and change tab
var activeTab = localStorage.getItem('activeTab');
if(activeTab){
  $('.nav-tabs a[href="' + activeTab + '"]').tab('show');
  loadTabContent(activeTab);
}

这是一个演示链接:https://jsfiddle.net/1mfqwgpz/3/

关于javascript - 页面重新加载后保持事件选项卡时加载ajax内容(Bootstrap 4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59247098/

相关文章:

javascript - dc.js 聚合数据表

javascript - Grunt sass 不输出任何 css

javascript - 在 JQUERY 中延迟 | Ajax

asp.net - 如何 "push"更新 (ASP.NET) 网页表格/网格中的各个单元格?

javascript - Codeigniter 聊天应用程序未提交表单数据,并且还在 javascript 控制台中显示 500 内部服务器错误

javascript - float - 无算术运算和精度误差

javascript - jQuery 选择器、查找和获取之间的区别

javascript - 如果文本框输入值发生变化,则验证该字段...但是如果... Javascript

javascript - 滚动时更改 Logo div 背景颜色

ruby-on-rails - "Nil location provided. Can' t build URI."在 rails 中执行 AJAX 请求时是什么意思?