[英]remove class if other nav is clicked bootstrap
我的引導站點中有2個移動導航欄。 我知道這不是最好的主意,但有了這家公司的設計,我別無選擇。 我需要幫助,以使glyphicons在關閉時翻轉回向下位置。 如果單擊了另一個導航切換,但glyphicon不會后退,我有一些腳本可以關閉一個腳本。 我知道這是比較容易的事情,但是對於引導和編寫腳本我還是很陌生。 這是我的代碼:
<div class="header"><div class="container">
<div class="col-sm-4 logo hidden-xs"><a href="/"><img class="img-responsive" title="Logo" src="images/Logo.png" alt=""></a></div>
<div class="col-sm-4 login-wrapper hidden-xs">
<ul class="list-inline header-list">
<li>Login to sphere</li>
<li id="myMode-glyphicon" class="pull-right list-unstyled dropdown modeSelector">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Shippers <span class="modeSelect glyphicon glyphicon-menu-down"></span></a><ul class="list-unstyled dropdown-menu" role="menu"><li><a href="#">sphere</a></li>
<li><a href="#">Trucks</a></li>
<li><a href="#">Transport</a></li>
</ul>
</li>
</ul>
<div class="clearfix"></div>
<form class="login-form" role="login">
<div class="form-group">
<input type="text" class="user-input form-control" placeholder="Username">
<input type="text" class="pass-input form-control" placeholder="Password">
<button type="submit" title="Login" class="btn btn-default"><i class="glyphicon glyphicon-arrow-right"></i></button>
</div>
</form></div>
<div class="col-sm-4 search-wrapper hidden-xs">
<form class="search-form" role="search">
<div class="form-group">
<input type="text" class="search-input form-control" placeholder="Search">
<button type="submit" title="Search TMC" class="btn btn-default"><i class="glyphicon glyphicon-search"></i></button></div></form>
</div>
</div>
<div class="row">
<nav class="navbar navbar-default">
<div class="container"><div class="navbar-header"><a class="navbar-brand hidden-md hidden-xl hidden-sm hidden-lg" href="#"><img class="img-responsive" title="Logo" src="images/Logo.png" alt=""></a>
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" id="autocollapse" data-target="#navbar-collapse-1"><span class="menu-toggle-text">MENU <i class="myMenu-glyphicon glyphicon glyphicon-menu-down"></i></span>
</button>
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse-2">
<span class="menu-toggle-text">LOGIN <i class="myLogin-glyphicon glyphicon glyphicon-menu-down"></i></span>
</button>
</div>
<div class="collapse navbar-collapse" id="navbar-collapse-1">
<ul class="nav navbar-nav">
<form class="search-form mobileSearch-form hidden-sm hidden-md hidden-xl hidden-lg" role="search">
<div class="form-group">
<input type="text" class="search-input form-control" placeholder="Search">
<button type="submit" title="Search TMC" class="btn btn-default mobileSearch-btn"><i class="glyphicon glyphicon-search"></i></button>
</div>
</form>
<li class="active"><a href="#">ABOUT <span class="sr-only">(current)</span></a></li>
<li><a href="#">RESOURCES</a></li>
<li><a href="#">CONTACT</a></li>
<li class="dropdown">
<a class="dropdown-toggle" href="#" data-toggle="dropdown">SERVICES</a>
<div class="dropdown-menu hover-dropdown hidden-xs hidden-sm">
<div style="height:5px; background-color:#fff;"></div>
<ul class="list-inline hidden-xs">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li><a href="#">Separated link</a></li>
<li><a href="#">One more separated link</a></li>
</ul>
</div>
</li>
<li><a href="#">PLACEHOLDER</a></li>
</ul>
</div><!-- /.navbar-collapse -->
<div class="collapse navbar-collapse" id="navbar-collapse-2">
<ul class="nav navbar-nav hidden-md hidden-xl hidden-sm hidden-lg mobileLogin">
<li>
<ul class="header-list list-unstyled">
<li class="list-unstyled mobile">Login to sphere</li>
<li id="myMode-glyphicon-mobile" class="list-unstyled dropdown modeSelector">
<a href="#" class="mobileDropdown dropdown-toggle mobile" data-toggle="dropdown" role="button" aria-expanded="false">Shippers <span class="modeSelect glyphicon glyphicon-menu-down pull-right"></span></a>
<ul class="mobileList list-unstyled dropdown-menu mobile" role="menu">
<li><a href="#">sphere</a></li>
<li><a href="#">Trucks</a></li>
<li><a href="#">Transport</a></li>
</ul>
</li>
</ul>
</li>
<div class="clearfix"></div>
<form class="login-form" role="login">
<div class="form-group">
<input type="text" class="user-input form-control longin-control" placeholder="Username">
<input type="text" class="pass-input form-control login-control" placeholder="Password">
<button type="submit" title="Login" class="btn btn-default mobileSearch-btn pull-right"><i class="glyphicon glyphicon-arrow-right"></i></button>
</div>
</form>
</ul>
</div>
</div><!-- /.container-fluid -->
</nav>
</div>
</div>
<script>
$('#navbar-collapse-1').on('shown.bs.collapse', function () {
$(".myMenu-glyphicon").removeClass("glyphicon-menu-down").addClass("glyphicon-menu-up");
});
$('#navbar-collapse-1').on('hidden.bs.collapse', function () {
$(".myMenu-glyphicon").removeClass("glyphicon-menu-up").addClass("glyphicon-menu-down");
});
$('#navbar-collapse-2').on('shown.bs.collapse', function () {
$(".myLogin-glyphicon").removeClass("glyphicon-menu-down").addClass("glyphicon-menu-up");
});
$('#navbar-collapse-2').on('hidden.bs.collapse', function () {
$(".myLogin-glyphicon").removeClass("glyphicon-menu-up").addClass("glyphicon-menu-down");
});
if( $('#navbar-collapse-1').hasClass('shown.bs.collapse') ){
(".myMenu-glyphicon").removeClass("glyphicon-menu-up");
};
</script>
我試圖這樣做,但是沒有用。 我想知道是否應該創建bootply嗎?
<script>
// FLIP ALL THE GLYPHICONS NAVBAR
$('#navbar-collapse-1').on('shown.bs.collapse', function () {
$(".myMenu-glyphicon").removeClass("glyphicon-menu-down").addClass("glyphicon-menu-up");
});
$('#navbar-collapse-1').on('hidden.bs.collapse', function () {
$(".myMenu-glyphicon").removeClass("glyphicon-menu-up").addClass("glyphicon-menu-down");
$(this).addClass("dropdown-open");
});
$('#navbar-collapse-2').on('shown.bs.collapse', function () {
$(".myLogin-glyphicon").removeClass("glyphicon-menu-down").addClass("glyphicon-menu-up");
$(this).addClass("dropdown-open");
});
$('#navbar-collapse-2').on('hidden.bs.collapse', function () {
$(".myLogin-glyphicon").removeClass("glyphicon-menu-up").addClass("glyphicon-menu-down");
});
if( $('#navbar-collapse-1').hasClass('dropdown-open') ){
(".myMenu-glyphicon").removeClass("glyphicon-menu-up");
};
</script>
我認為您的錯誤在於這部分:
if( $('#navbar-collapse-1').hasClass('shown.bs.collapse') ){
(".myMenu-glyphicon").removeClass("glyphicon-menu-up");
};
shown.bs.collapse
不是應用於該元素的類,而是一個事件。
您正在正確的軌道上。 您可以修改第一個導航欄上的偵聽器,以更改第一個導航欄的類,以表示存在這樣一個打開的導航欄,然后在第二個導航欄代碼中檢查第一個導航欄是否具有dropdown-open類。
<script>
// FLIP ALL THE GLYPHICONS NAVBAR
$('#navbar-collapse-1').on('shown.bs.collapse', function () {
$(".myMenu-glyphicon").removeClass("glyphicon-menu-down");
$(".myMenu-glyphicon").addClass("glyphicon-menu-up");
$(this).addClass("dropdown-open");
});
$('#navbar-collapse-1').on('hidden.bs.collapse', function () {
$(".myMenu-glyphicon").removeClass("glyphicon-menu-up");
$(".myMenu-glyphicon").addClass("glyphicon-menu-down");
$(this).removeClass("dropdown-open");
});
$('#navbar-collapse-2').on('shown.bs.collapse', function () {
$(".myLogin-glyphicon").removeClass("glyphicon-menu-down");
$(".myLogin-glyphicon").addClass("glyphicon-menu-up");
$(this).addClass("dropdown-open");
if( $('#navbar-collapse-2').hasClass('dropdown-open') ){
$(".myLogin-glyphicon").removeClass("glyphicon-menu-up");
};
});
$('#navbar-collapse-2').on('hidden.bs.collapse', function () {
$(".myLogin-glyphicon").removeClass("glyphicon-menu-up")
$(".myLogin-glyphicon").addClass("glyphicon-menu-down");
$(this).removeClass("dropdown-open");
if( $('#navbar-collapse-1').hasClass('dropdown-open') ){
$(".myMenu-glyphicon").removeClass("glyphicon-menu-up");
};
});
</script>
邁克爾,我想您在這里知道自己的救生員。 我可以在這里用您的代碼弄清楚這一點。 我不確定我可以清理多少內容,並確保加載時間不會很長。 我對Bootstrap和JavaScript相當陌生,但我認為這可以解決問題。 我的代碼所處的唯一問題是單擊其他按鈕時它將隱藏glyphicon,即使單擊該特定按鈕,glyphicon也將隱藏。 這是我的操作方法,請再次告訴我是否有一種更簡單的方法來編寫此邏輯,因為我敢肯定有。 非常感謝Michael在此方面的幫助!)
<script>
// FLIP ALL THE GLYPHICONS NAVBAR
$('#navbar-collapse-1').on('shown.bs.collapse', function () {
$(".myMenu-glyphicon").removeClass("glyphicon-menu-down");
$(".myMenu-glyphicon").addClass("glyphicon-menu-up");
$(this).addClass("dropdown-open").removeClass("dropdown-closed");
if( $('#navbar-collapse-2').hasClass('dropdown-open') ){
$(".myLogin-glyphicon").removeClass("glyphicon-menu-up");
$(".myLogin-glyphicon").addClass("glyphicon-menu-down");
$("#navbar-collapse-2").removeClass("dropdown-open");
$("#navbar-collapse-2").addClass("dropdown-closed");
};
});
$('#navbar-collapse-1').on('hidden.bs.collapse', function () {
$(".myMenu-glyphicon").removeClass("glyphicon-menu-up");
$(".myMenu-glyphicon").addClass("glyphicon-menu-down");
$(this).removeClass("dropdown-open").addClass("dropdown-closed");
});
$('#navbar-collapse-2').on('shown.bs.collapse', function () {
$(".myLogin-glyphicon").removeClass("glyphicon-menu-down");
$(".myLogin-glyphicon").addClass("glyphicon-menu-up");
$(this).addClass("dropdown-open").removeClass("dropdown-closed");
if( $('#navbar-collapse-1').hasClass('dropdown-open') ){
$(".myMenu-glyphicon").removeClass("glyphicon-menu-up");
$(".myMenu-glyphicon").addClass("glyphicon-menu-down");
$("#navbar-collapse-1").removeClass("dropdown-open");
$("#navbar-collapse-1").addClass("dropdown-closed");
};
});
$('#navbar-collapse-2').on('hidden.bs.collapse', function () {
$(".myLogin-glyphicon").removeClass("glyphicon-menu-up")
$(".myLogin-glyphicon").addClass("glyphicon-menu-down");
$(this).removeClass("dropdown-open").addClass("dropdown-closed");
if( $('#navbar-collapse-1').hasClass('dropdown-open') ){
$(".myMenu-glyphicon").removeClass("glyphicon-menu-up");
$(".myMenu-glyphicon").addClass("glyphicon-menu-down");
};
});
</script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.