javascript - Bootstrap 4 - 嵌套导航链接仅在第一次打开选项卡内容

标签 javascript jquery html bootstrap-4

我正在尝试创建一个垂直嵌套导航,它会在单击时打开一个选项卡。但是,嵌套级别中的链接会导致选项卡打开时出现异常。

我这里有一个 JS fiddle 来说明这个问题:

https://jsfiddle.net/2v2qwnkc/1/

重现:

  1. 单击报告 > 电话。这会按预期将“电话内容”加载到选项卡内容区域。
  2. 现在,单击主页。什么都不会发生。
  3. 接下来,单击个人资料。个人资料内容将加载。
  4. 最后,再次点击电话。什么都不会发生。

非常感谢任何帮助。

最佳答案

我相信你的问题的核心是嵌套 .nav 元素。

tab.js插件就像您的父子 nav 是分开的一样。你可以通过一个简单的事实来判断它让两个元素同时拥有一个 .active 类:

enter image description here

实际问题似乎出在插件的 148 行:

activeElements = $(container).children(Selector.ACTIVE)

children 方法仅返回您的父级 .nav 的直接子级。 #phone-tab 是后代,而不是子代,因此从未包含在内。

如果我们去掉您嵌套的 .nav,点击 Home 链接就可以了,但是 Phone 将保持标记为事件状态。如果我们深入挖掘,我们会发现负责删除 .active 类的行仅适用于第一个元素:

const active = activeElements[0]

我的结论是,您需要大量修改此插件以使其适用于您的情况,或者创建您自己的自定义解决方案。

关于javascript - Bootstrap 4 - 嵌套导航链接仅在第一次打开选项卡内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48814154/

相关文章:

javascript - 无法使递归淡入、切换、显示正常工作

JavaScript代码 'window.location'执行onclick

jquery - SPFx 不能使用 JQuery?

javascript - 将多个 Backbone View $el 合并到一个 jQuery 对象中

html - max-width 在 mozilla 和 IE 中不起作用

javascript - 按具有空值的日期排序不起作用 JSON 对象。

javascript - JS 中的命名组和 OR 运算符

javascript - 从嵌入脚本中获取 Javascript 中的 ID 作为变量

html - 使用内联时所有浏览器中的楼梯影响问题

php - 从 PHP 生成带有页眉和页脚的 Word 文档