javascript - 由于显示 :flex;,SmartMenus 在 Chrome 上无法正常工作

标签 javascript html css twitter-bootstrap flexbox


对于一个新元素,我使用 Bootstrap 3 SmartMenus 子菜单的插件。

我的问题是,在 Chrome (v 58) 上,具有子菜单的链接上的插入符在加载时消失,子菜单在单击而不是悬停时显示,并且它们没有关闭当另一个打开时。

不过我已经找到了这个问题的根源。 .sm-collapsible 类在加载时应用于我的 ul.navbar-nav 元素。 但是,仅当 ul.navbar-nav 元素具有 display:flex; 并且在 Chrome 上时才适用。我尝试使用 display:table;display:table-cell; 重现我的布局,但它也不起作用。

所以这并不是一个特别的 flex 问题,而是它来自布局并且它扰乱了 JavaScript。

我不知道为什么或怎么可能。

您可以在此处查看在线版本:https://lesdeuxvagues.com/laloupe (悬停/单击目录以查看问题)

提前致谢...我真的被困在这里了。

编辑
我刚刚找到了负责添加 .sm-collapsible 类的 JS 行。在这里:
obj.isCollapsible = function() { return !/^(left|right)$/.test(this.$firstLink.parent().css('float')‌ );};

它在 Chrome 上始终返回 true(当 display:flex; 未被注释时),但仅在 Firefox 和 Edge 的移动设备上返回。

最佳答案

您可以尝试在 CSS 中将 ul.navbar-nav 更改为 display: block;(您可以修改 bootstrap.less: #header #navbar > ul { display: block; } 或在你自己的 less 文件中覆盖它)或通过查找负责添加 .sm-collapsible 并删除该操作的函数来修改插件的 JS。

关于javascript - 由于显示 :flex;,SmartMenus 在 Chrome 上无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43998523/

相关文章:

javascript - 为什么 iife 中 `X` 的值会根据我们访问它的方式发生变化?

javascript - 在 .slice 之后重置 JSON 数组

javascript - 当页面滚动到某个点时,如何使用 jQuery 更改文本?

html - 如何使垂直输入完全适合整个侧边导航栏?

html - 如何使带有背景附件的图像居中

jquery - 在每个 <td> 上添加 <th> 文本 - jquery

javascript - 如何清除从 Controller 分配的事件?

相当于 jQuery 的 .detach() 函数的 Javascript

html - CSS3 box-shadow 没有深度

html - 并非类中的所有样式都适用