2012-02-27 8 views
1

クリックしたリンクを除くすべてのリンクにクラスを適用する関数を探しています。jquery特定のクラスを持つリンクを除くすべてのリンクを選択します。

$('a:contains("op1")') 
    .live('click', function(){ 
     $(this).addClass('foot_active'); 
     $('a:not(.foot_active)').addClass('foot_inactive'); 
    }); 
$('a:contains("op2")') 
    .live('click', function(){ 
     $(this).addClass('foot_active'); 
     $('a:not(.foot_active)').addClass('foot_inactive'); 
    }); 
$('a:contains("op3")') 
    .live('click', function(){ 
     $(this).addClass('foot_active'); 
     $('a:not(.foot_active)').addClass('foot_inactive'); 
    }); 

CSS

.foot_active { 
    text-decoration:underline; 
} 
.foot_inactive { 
    text-decoration:none; 
} 

HTML

<div class="sitemap"> 
    <table class="table_site"> 
     <tr> 
      <td class="subsite"><a>op1</a></td> 
      <td class="subsite"><a>op2</a></td> 
      <td class="subsite"><a>op3</a></td> 
     </tr> 
    </table> 
</div> 

スクリプトは、このスクリプトは、あなただけは、リンクではなく、将来のクリックをクリックしてください最初の時間のために働きます。 私は何か間違っていると思うが、私の脳は今やとても怒っているようだ。

ありがとうございます。

答えて

1

$('.sitemap a') .live('click', function(){ 
    $(this).addClass('foot_active'); 
    $('.sitemap a').not(this).removeClass('foot_active'); 
}); 
0

あなたは...

$('a.foot_active').removeClass('foot_active').addClass('foot_inactive'); $(this).removeClass('foot_inactive').addClass('foot_active');

を試みることができる...それはあなたがやりたいのか?

2

あなたはクラスを削除することは決してないので、非アクティブなクラスを持つすべてのリンクになります。

実際には非アクティブなクラスは必要ありません。アクティブなクラスを削除するだけです。これはあなたの3つのイベントハンドラを置き換えます:

$('a') .live('click', function(){ 
    $(this).addClass('foot_active'); 
    $('a').not(this).removeClass('foot_active'); 
}); 

あなたがページ内の任意のより多くのリンクを持っている場合'.subsite a'のように、'a'よりもより具体的なselctorを使用する場合があります。

0

他のすべての要素を変更する必要はありません。要素は多くのクラスを持つことができるので、アクティブなクラスのみを切り替えることができます。それはjQueryの1.7で廃止されよう

$('.table_site a').addClass('foot_inactive').click(function(){ 
    $('.foot_active').removeClass('foot_active'); 
    $(this).addClass('foot_active');  
}) 
1

まず、あなたは.live()を使用しないでください。

これはあなたが探しているものです、私は願っています。あなたが試みることができる.sitemapと呼ばれるクラスを持つTD内のすべてのリンクの

$('.sitemap a').click(function(){ 
    $('.sitemap a').toggleClass('foot_inactive',true).toggleClass('foot_active',false); 
  $(this).addClass('foot_active');     
}); 
関連する問題