繁体   English   中英

CodeIgniter + Bootstrap选项卡,重新加载不会返回到上一个活动选项卡

[英]CodeIgniter + Bootstrap tabs, reload won't return to last active tab

这是我在这里的第一个问题,但是我已经潜伏了很长时间。 我希望我能说清楚。

碰巧我正在开发一个带有Bootstrap 3 +选项卡的CI应用程序 ,并且在执行“表单提交”后,重新加载将我带到了第一个选项卡,而不是最后一个活动标签。

<ul class="nav nav-tabs" id="tabs">
    <li class="active"><a href="#accion" data-toggle="tab">Acción</a></li>
    <li><a href="#observaciones" data-toggle="tab">Observaciones</a></li>
    <li><a href="#adjuntos" data-toggle="tab">Adjuntos</a></li>
</ul>

这就是我的标签页的构建方式,并且控制器具有如下所示的redirect():

redirect(base_url().'/responderconsulta/index/'.$consulta_id.'#observaciones');

我还没有找到纠正此问题的方法。 希望我能有所帮助。

提前致谢。

感谢@Paul Zepernick,在他的评论中他提到了这篇文章 ,其中的代码使此事变得轻而易举。

$(document).ready(function() {
if(location.hash) {
    $('a[href=' + location.hash + ']').tab('show');
}
  $(document.body).on("click", "a[data-toggle]", function(event) {
      location.hash = this.getAttribute("href");
  });
});
$(window).on('popstate', function() {
  var anchor = location.hash || $("a[data-toggle=tab]").first().attr("href");
  $('a[href=' + anchor + ']').tab('show');
});

感谢大家的帮助,我非常感谢!

在您的js文件中:

var hash = window.location.hash;
$('#tabs > li').removeClass("active");
$('#tabs').find('a[href='+hash+']').parent().addClass("active");

目的是检测URL末尾的锚点并将有效选项卡设置为活动状态

编辑:这是另一种选择:

var hash = window.location.hash;
$('#tabs').find('a[href='+hash+']').click();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM