- ベストアンサー
jQueryを使用してクリック時にclass名を追加する方法
- サイドバーのメニューをクリックした際にリンクの色を変える方法について説明します。
- ページAリンクをクリックした場合、liタグにid=selectを追加し、他のリンクのid=selectを削除する処理をjQueryで行います。
- サイドバーのメニューには#sidebar li aというCSSスタイルが適用されており、クリック時にid=selectがあればcolorが#0F0になります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
追加するのはidじゃなくてclassにすべき。 IDだと一時的に重複する可能性が存在してくるため適切ではありません。 classであれば複数の属性をつけることもできるため、デザインでわざわざIDを使う理由はないです。 前提としてはアンカーを使うもののページ遷移を伴わない作りじゃないといけないですね。 基本的にはaddClass/removeClassを使うことになります。動きは読んでそのままです。 $("#slider a").click(function(){ //#sliderの子要素になっているliでclassにselectがある場合はselectを除去 $("#slider li.select").removeClass("select"); //クリックしたaの親要素になっているliにselectを付加 $(this).parent("li").addClass("select"); }) 簡単にはこんなもんでいいと思う。 どうしてもIDでってことだと、attrを使って直接書き換えになります。 $("#slider a").click(function(){ $("#slider li#select").attr("id",""); $(this).parent("li").attr("id","select"); })
その他の回答 (1)
- neko-ten
- ベストアンサー率55% (1287/2335)
sliderじゃないsidebarだった・・ 今作ってるのと混同してしまった・・・ $("#sidebar a").click(function(){ $("#sidebar li.select").removeClass("select"); $(this).parent("li").addClass("select"); }) $("#sidebar a").click(function(){ $("#sidebar li#select").attr("id",""); $(this).parent("li").attr("id","select"); }) 申し訳ないです・・・