0

これがクリックされた場合に a href タグにクラスを割り当てたい、つまり、1 つのアドレスがアドレスバーにある場合、このタグに 1 つのクラスを割り当てたい..

私はCSSにこのスタイルを持っています..

ul#menu li a {
padding: 10px 20px;
font-weight: bold;
text-decoration: none;
line-height: 2.8em;
color: #465c71;
}

ul#menu li a.selected {
padding: 10px 20px;
font-weight: bold;
text-decoration: none;
line-height: 2.8em;
color: #FFFFFF;
}

フォントの色のみを変更する場所..

そして、私のmvc3プロジェクトのレイアウトページにあるこのjqueryスクリプト..

私はこの機能を持っています..

<script type="text/javascript">
  $(function () {
      var pgurl = window.location.href.substr(window.location.href.lastIndexOf("/") + 1);
      $("#menu li a").each(function () {
      var addr = $(this).attr("href").lastIndexOf("/") + 1;
      if (addr == pgurl)
          $(this).addClass("selected");
  })
 });
 </script>

pgurl は太字の値ですhttp://local.host:81/Home/ Services (確かに、私は別の jquery 関数を使用して動作するため)

そして、私はこのようなaa hrefリンクを持っています..

<li><a href="@Url.Action("Services", "Home")">@MvcWebRole1.Resources.Shared.Layout.Services</a></li>

そして、これは上記のようにリンクを生成します..

<a href="/Home/Services">Services</a>

最初の変数が私と同じページである場合、このタグにクラスを追加したい場所..私はfirebugまたは同様の方法で行います(手動でクラスを追加します)期待どおりに動作します..

最後に、2 つの変数は太字の値 (Services) を持つ必要がありますが、タグにクラスを追加しません。Visual Studio 2010 で作業しており、この値をテストすることはできません。値を表示するためにブレークポイントを配置することはできません。上でコメントしたように、別のリストのタグと完全に連携する別の同様の関数があります..

誰かが私を助けることができますか?

ありがとう。

4

1 に答える 1

1
var addr = $(this).attr("href").lastIndexOf("/") + 1;

上記は にnumber+ 1 を割り当てaddrます。次に、この数値が文字列と等しいことをテストします。そのため、アクションが数値でない限り (数値であるかどうかは不明)、常に失敗します。

リンクから部分文字列も取得するつもりだったのかもしれません

 var addr = $(this).attr("href").substr($(this).attr("href").lastIndexOf("/") + 1);
于 2012-05-17T09:50:27.517 に答える