私はPlayFrameworkアプリケーションを持っており、フロントエンドにTwitterブートストラップを使用しています。
ナビゲーションバーには、以下に示す4つのオプションがあります。
<div class="nav-collapse">
<ul class="nav">
<li class="@("active".when(nav == ""))"><a href="@routes.Application.index()">@Messages("playauthenticate.navigation.home")</a></li>
<li class="@("active".when(nav == "restricted"))"><a href="@routes.Application.restricted()">@Messages("playauthenticate.navigation.restricted")</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Journey Management<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="@routes.Application.createJourney()"><i class="icon-plus-sign"></i>@Messages("journeys.dropdown.option1")</a></li>
<li><a href="@routes.Application.Todo()"><i class="icon-calendar"></i>@Messages("journeys.dropdown.option2")</a></li>
<li><a href="@routes.Application.Todo()"><i class="icon-star"></i>@Messages("journeys.dropdown.option3")</a></li>
</ul>
</li>
@if(!Deadbolt.viewRoleHolderPresent()) {
<li class="@("active".when(nav == "signup"))"><a href="@routes.Application.signup()">@Messages("playauthenticate.navigation.signup")</a></li>
}
</ul>
</div>
「ホーム」または「サインアップ」ページに移動すると、これらのオプションがナビゲーションバーでアクティブになります。私の問題は、ドロップダウンバーからオプションを選択するたびに、[ホーム]ボタンがアクティブなままになることです。「JourneyManagement」オプションをアクティブにしたいのですが、ドロップダウンメニューでこれを行う方法がわかりません。
そこで、HTMLに次の変更を加えました。
<li class="@("active".when(nav == "journeys")) dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Journey Management<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="@routes.Application.createJourney()"><i class="icon-plus-sign"></i>@Messages("journeys.dropdown.option1")</a></li>
<li><a href="@routes.Application.Todo()"><i class="icon-calendar"></i>@Messages("journeys.dropdown.option2")</a></li>
<li><a href="@routes.Application.Todo()"><i class="icon-star"></i>@Messages("journeys.dropdown.option3")</a></li>
</ul>
</li>
[ジャーニー管理]ドロップダウンからオプションを選択すると、この場合は[ジャーニーの作成]ページ(アクションがある唯一のページ)のローカルホストアドレスであるhttp://localhost:9000/journeys
ため、ジャーニーアプリケーションルートでメソッドを呼び出しています。ただし、ナビゲーションバーの[ホーム]リンクはアクティブなままですが、ナビゲーションバーの[ジャーニー管理]ドロップダウンは非アクティブのままです。
ロードされたページのソースは次のとおりです。
これは実際のページのHTMLです
<div class="nav-collapse">
<ul class="nav">
<li class="active"><a href="/">Home</a></li>
<li class=""><a href="/restricted">Restricted page</a></li>
<li class=" dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Journey Management<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/journeys"><i class="icon-plus-sign"></i>Create a Journey</a> </li>
<li><a href="/TODO"><i class="icon-calendar"></i>View all Journeys</a></li>
<li><a href="/TODO"><i class="icon-star"></i>View saved Journeys</a></li>
</ul>`