0

私はここに新しいです。だから多分これはばかげた質問です。私は以下のCSSコードを持っています:

 <ul id="nav">
  <li><h1>Cover</h1><a class="cover" href="#cover"></a></li>
  <li><h1>About</h1><a class="about" href="#about"></a></li>
  <li><h1>CV</h1><a class="cv" href="#cv"></a></li>
  <li><h1>Contact</h1><a class="contact" href="#contact"></a></li>
 </ul>

「About」をクリックすると、クラス「about」が「active」に変更されます。他の行と同様です。クラス「アクティブ」の重複を避ける方法は?

以下の私のjQueryコードですが、何も起こりません:

$('#nav.about a').click(function() {
   $('#nav.about a').removeClass('about').addClass('active');
});

助けてくれてありがとう。

乾杯。

4

3 に答える 3

3

セレクターが間違っています。セレクターは、ofofの両方を持つ要素の子である要素を#nav.about a探します。HTML については、次のものを探しています。jQueryを与える:aidnav classabout#nav a.about'

$('#nav a.about').click(function() {
   $(this).removeClass('about').addClass('active');
});

追加された質問に関して、コメントで(以下):

【何度も選択されるクラス「アクティブ」を回避するには?...「About」をクリックすると、このクラスは「アクティブ」に設定されました。また、「連絡先」をクリックすると、このクラスも「アクティブ」に設定されました。そのため、同時に「アクティブな」クラスを 1 つだけ制限したいと考えています。

click()これを実現するには、以下のように、メソッド内でそのクラス名を持つ要素を選択するだけです。

$('#nav a.about').click(function() {
   $('#nav a.active').removeClass('active');
   $(this).removeClass('about').addClass('active');
});

参考文献:

于 2013-06-06T18:54:48.073 に答える
0

$('#nav.about a')に変更$('#nav a.about')

$('#nav.about a').click(function() {
   $('#nav a.about').removeClass('about').addClass('active');
});
于 2013-06-06T18:54:30.267 に答える
0

セレクターを変更する必要があります。あなたが言っているのは、ID navAND クラスの要素の子孫であるアンカー要素を見つけてくださいabout」ということです。あなたが望むのは以下で、「aboutID の要素の子孫であるクラスのアンカータグを見つけてnavください」

$('#nav a.about').click(function() {
   $(this).removeClass('about').addClass('active');
});
于 2013-06-06T18:54:42.283 に答える