- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
据我所知,自从发布 Bootstrap 3 以来,官方不再支持开箱即用的多级/多层导航。我不明白他们为什么做出这个决定,因为这对我来说似乎是一个非常愚蠢的举动,但目前我正在尝试在我的网站中恢复此功能/行为。
这是我的 Bootstrap 导航菜单的 html:
<nav id="topNavigation" class="navbar navbar-default" role="navigation">
<div class="container-fluid">
<!-- Brand and toggle grouped for better mobile display-->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse">
<span class="sr-only">Toggle Navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand visible-xs" href="#">Menu</a>
</div>
<!-- Content that requires toggling on mobile devices-->
<div class="collapse navbar-collapse" id="navbar-collapse">
<ul class="nav navbar-nav level2">
<li class="active"><a href="/">Home</a></li>
<li><a href="/blog/">Blog</a></li>
<li>
<a class="hidden-xs" href="/destinations/">Destinations</a>
<a class="visible-xs dropdown-toggle" href="#" data-toggle="dropdown">Destinations <b class="caret"></b></a>
<ul class="dropdown-menu level3">
<li class="dropdown-submenu">
<a class="hidden-xs" href="/destinations/europe-the-caucasus/">Europe & the Caucasus </a>
<a class="visible-xs dropdown-toggle" href="#" data-toggle="dropdownTwo">Europe & the Caucasus <b class="caret"></b></a>
<ul class="dropdown-menu level4">
<li><a href="/destinations/europe-the-caucasus/albania/">Albania</a></li>
<li><a href="/destinations/europe-the-caucasus/armenia/">Armenia</a></li>
<li><a href="/destinations/europe-the-caucasus/azerbaijan/">Azerbaijan</a></li>
<li><a href="/destinations/europe-the-caucasus/georgia/">Georgia</a></li>
<li><a href="/destinations/europe-the-caucasus/europes-arctic-circle/">Europe's Arctic Circle</a></li>
<li><a href="/destinations/europe-the-caucasus/romania/">Romania</a></li>
<li><a href="/destinations/europe-the-caucasus/turkey/">Turkey</a></li>
<li><a href="/destinations/europe-the-caucasus/montenegro/">Montenegro</a></li>
</ul>
</li>
<li class="dropdown-submenu">
<a class="hidden-xs" href="/destinations/north-africa/">North Africa</a>
<a class="visible-xs dropdown-toggle" href="#" data-toggle="dropdownTwo">North Africa <b class="caret"></b></a>
<ul class="dropdown-menu level4">
<li><a href="/destinations/north-africa/egypt/">Egypt</a></li>
<li><a href="/destinations/north-africa/libya/">Libya</a></li>
<li><a href="/destinations/north-africa/morocco/">Morocco</a></li>
<li><a href="/destinations/north-africa/mali-burkina-faso/">Mali & Burkina Faso</a></li>
<li><a href="/destinations/north-africa/sudan/">Sudan</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
目前,我已经设法在纯 css 中使用悬停效果恢复了桌面的多级导航功能:
@media (min-width: 992px){
/*Add multi-level navigation support*/
.dropdown-submenu{position:relative;}
.dropdown-submenu>.dropdown-menu{top:-2%;left:99.5%;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px;margin:0;padding:0}
.dropdown-submenu:active>.dropdown-menu, .dropdown-submenu:hover>.dropdown-menu {display: block;}
.dropdown-submenu>a:after{display:block;content:" ";float:right;width:0;height:0;border-color:transparent;border-style:solid;border-width:5px 0 5px 5px;border-left-color:#cccccc;margin-top:5px;margin-right:-10px;}
.dropdown-submenu:active>a:after{border-left-color:#ffffff;}
.dropdown-submenu.pull-left{float:none;}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px;}
.navbar-nav > li:hover > ul.dropdown-menu,
.navbar-nav > li:hover > ul.dropdown-menu > li.dropdown-submenu:hover > ul.dropdown-menu {
display: block;
background-color: #FFA050;
}
.navbar-nav > li:hover ul li a:hover,
#topNavigation .navbar-nav > li.active ul li a:hover{
background-color: #451F00;
color: #FFA050;
}
#topNavigation .navbar-nav > li.active ul li a {
background-color: #FFA050;
color: #451F00;
}
}
这会产生以下效果:
但是,在移动设备上似乎存在一些问题,我认为这是由数据切换属性引起的。
如上所示,菜单看起来是正确的,但是,当我单击应触发折叠的国家/地区列表打开的大洲之一时,它反而折叠了目的地下拉菜单,不显示任何下一层导航。
我的主要问题是,如何调整我的代码以确保 data-toggle 属性针对的是正确的菜单,以暴露下面的内容?我已经尝试替换数据切换中的值,但这实际上似乎没有做任何事情并且无论放在这里什么都表现出相同的行为。
任何帮助将不胜感激。我还会整理一个 fiddle 来尝试更清楚地演示这个问题。
注意我也尝试按照下面链接中的提示进行操作,但不幸的是,它们似乎根本没有改变移动屏幕的行为:
http://www.jeffmould.com/2014/01/09/responsive-multi-level-bootstrap-menu/
最佳答案
查看 bootstrap 下拉源代码,似乎 boostrap 附加了一个事件,该事件在单击下拉项时触发隐藏所有下拉菜单的函数。如果我们停止运行该事件并在单击下拉切换时自行切换可见性,它应该可以工作。所以像这样:
//might be selecting too many things
$(".level3 .dropdown-toggle").click(function(e){
$(this).closest('li').toggleClass('open') //show dropdown
e.stopPropagation(); //stops from hiding menu
})
我还没有测试这段代码如何影响其他任何东西,但我想这是一个好的开始。
关于javascript - Bootstrap 3 : Multi-tier navigation menu support for mobiles and up,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23430283/
$.mobile.pageContainer 是指包含其他虚拟页面的元素。它设置为 .所以我认为它可以改变。实际上,某些 JQM 方法 (changePage) 允许您为页面指定非默认页面容器。 J
如何在移动设备上更改方向时触发事件。 调整大小 在 iPod Touch 上运行良好,但在使用 Opera mobile 作为浏览器的移动设备上运行良好。 有关如何在 Opera mobile 上触发
我想为我拥有的装有 Windows Mobile 2003 的设备开发一些应用程序,但我不想为此寻找 Visual Studio 2003 的副本。我想知道是否可以将 Mobile 6 SDK 用于此
我试图阻止 jQuery Mobile 在调用 changePage 时隐藏加载微调器。 程序流程是这样的,从点击一个链接开始,它的点击事件定义如下: $('body').delegate('.lib
我想为运行 Windows Mobile 5 的扫描仪开发应用程序。 MSDN 站点说要下载最新的 SDK(Windows Mobile 6 Professional SDK)。这会起作用还是我应该下
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我正在尝试使用 Jquery mobile 创建弹出菜单,通过单击按钮,它应该在不更改页面的情况下弹出菜单选项,类似于 jquery mobile 的选择菜单。在 JQM 中有没有办法做到这一点? 谢
在移动设备中,当我打开我的页面并选择一个输入框时,虚拟键盘打开,页面自动滚动以将输入框置于中心。 我不想要这个 Action 。 我搜索了很多答案,其中大多数建议在调整大小事件中手动调用以下 java
jQuery 移动列表中是否可以有多个拆分按钮? 我试过这样做: 1 但它不起作用。将链接包装在 中也不行.我做错了什么,
我想从我的 .js 文件中打开 .html 文件。所以我使用了 $.mobile.changePage("file.html")。在file.html 中有file.js。但是 file.js 在调用
我们有许多使用 Windows Mobile 6 的用户,需要应用较小的更改。例如。更新注册表设置。一种选择是使用我们的设备管理软件推送和执行可执行文件。 我希望这对熟悉 VBScript/JScri
我在PHP网站上有一个日期字段,并且我正在使用jQuery Mobile作为移动网站。 在移动浏览器(例如android上的firefox mobile)上浏览网站时,单击日期文本输入时,会出现日历对
我正在构建一个PhoneGap + JQuery Mobile应用程序,但似乎无法阻止它通过双击放大。我按照http://www.tricedesigns.com/2012/01/17/mobile-
随着 jQuery Mobile 1.3 的到来,.navigate()已添加功能。我听说这是更改页面的推荐方法,似乎他们解决了在页面之间传输数据的问题。 问题是,既然已经简化了,我该如何访问 cha
我想得到一个 input文本区域和 submit按钮附在它的右侧。 理想情况下,两者将使用 100% 的宽度并且并排放置。 我一直在尝试玩弄ui-grid-a和类似的选择,但一切都失败了。你可以看到一
我正在使用 jquery-mobile,我有这两个按钮: Pro: Reset 我希望它们并排显示(内联)。但我想不通。我做了this但它不起作用。你能帮我吗 ?这是我的 CSS:
我正在为 Windows Mobile 6.5 (Samsung Omnia II i8000) 开发 native 应用程序。进行一些更改后,我的应用程序在运行时挂起。 问题是我的应用程序也在启动期
有没有办法从周围和图标中删除背景光盘(圆圈)?我找到的光盘的唯一引用如下 background: rgba(0,0,0,.4) /*{global-ic
jQuery 移动版虽然在很多方面都很棒,但有时也令人沮丧。在这种情况下,我试图动态创建库中非常好的按钮之一。 基本上我想要做的是在输入字段中输入文本,当按下空格键时,它会创建一个带有文本的 jQue
我想在我的第 2 页上显示标题。使用以下内容是否有效: "> .... ? 最佳答案 这取决于你定义什么为“有效”
我是一名优秀的程序员,十分优秀!