【发布时间】:2018-03-08 06:32:06
【问题描述】:
我正在尝试在移动视图中使用 jQuery 应用某些类。现在使用 Bootstrap 和 Font Awesome,当在移动视图中向下箭头胡萝卜变成一个加号,可以点击展开下拉菜单。现在,当您单击 + Font Awesome 图标时,它将展开两个下拉菜单。
我怎样才能使它适用于与 + 图标有关的下拉菜单?
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="http://www.google.com" class="dropdown-toggle disabled" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">Google</a> <span class="fa fa-caret-down hidden-xs" aria-hidden="true"></span><span class="fa visible-xs-inline pull-right fa-plus"></span> <span class="sr-only">Drop Down Indicator Icon</span>
<ul class="dropdown-menu">
<li><a href="http://smile.amazon.com">Amazon</a></li>
<li><a href="#">Fake Link 1</a></li>
<li><a href="#">Fake Link 2</a></li>
<li><a href="#">Fake Link 2</a></li>
</ul>
</li>
<li class="dropdown">
<a href="http://smile.amazon.com" class="dropdown-toggle disabled" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Amazon</a> <span class="fa fa-caret-down hidden-xs" aria-hidden="true"></span><span class="fa fa-plus visible-xs-inline pull-right"></span> <span class="sr-only">Drop Down Indicator Icon</span>
<ul class="dropdown-menu">
<li><a href="http://www.google.com">Google</a></li>
<li><a href="#">Fake Link 1</a></li>
<li><a href="#">Fake Link 2</a></li>
<li><a href="#">Fake Link 2</a></li>
</ul>
</li>
<li>
<a href="#">Menu Item</a>
</li>
<li>
<a href="#">Menu Item</a>
</li>
<li>
<a href="#">Menu Item</a>
</li>
</ul>
这是我当前使用的页面上的 jQuery。
//Hover for the navigation.
$(function() {
$(".dropdown").hover(
function(){
$(this).addClass('open');
$(".dropdown.open .dropdown-toggle").attr("aria-expanded", "true");
},
function(){
$(this).removeClass('open');
$(".dropdown .dropdown-toggle").attr("aria-expanded", "false");
}
);
});
$('.dropdown-toggle').addClass("disabled");
//Add dropdown carrot to the dropdown items in menu.
$("a.dropdown-toggle").after(" <span class='fa fa-caret-down hidden-xs' aria-hidden='true'></span><span class='fa fa-plus visible-xs-inline pull-right'></span> <span class='sr-only'>Drop Down Indicator Icon</span>");
//Provides a way for the user to expand and collapse menu in mobile view.
$(document).ready(function() {
$("span.fa-plus").click(
(function(e){
if ($(".navbar-collapse.collapse.in .navbar-nav li.dropdown").hasClass('menu-open')) {
$(".navbar-collapse.collapse.in .navbar-nav li.dropdown").removeClass('open');
$(".navbar-collapse.collapse.in .navbar-nav li.dropdown").removeClass('menu-open');
$(".dropdown.open .dropdown-toggle").attr("aria-expanded", "true");
console.log("Top If");
}
else {
$(".navbar-collapse.collapse.in .navbar-nav li.dropdown").addClass('menu-open');
$(".navbar-collapse.collapse.in .navbar-nav li.dropdown").removeClass('open');
$(".dropdown.open .dropdown-toggle").attr("aria-expanded", "false");
console.log("Bottom If");
}
//alert("FA Plus");
$(this).toggleClass('fa-plus');
$(this).toggleClass('fa-minus');
return false;
})
);
});
【问题讨论】:
-
«现在两个下拉菜单都展开了。» -- 哎……不! :见this CodePen
-
在移动视图中,单击菜单中的加号图标时它们都会展开。
标签: jquery html css twitter-bootstrap-3 drop-down-menu