宜しくお願いします。
http://shampoo.bloom-pro.net/
上記のサイトの中で用いられている「accordion.js」の効率の良い書き方について教えて下さい。
現状では、記事が変更されるとvar elements = []の配列の個所とswitch($categoryNo)の個所を修正
する必要があります。
効率の良い書き方を教えていただけませんか?
因みにHTMLに対してクラス名の付与等の修正は行えますが、HTMLの構造の変更や各ページのURLのリンク名を修正することは出来ないという制約があります。
お手数をおかけ致しますがお願いします。
No.1ベストアンサー
- 回答日時:
下記ではどうでしょうか。
var elements = [] →削除
~~
$('.accordion li a').each(function(){
$href = $(this).attr('href');
if(location.href.match($href)) {
//カレントページの強調を制御
$(this).addClass('active');
$(this).parent().parent().parent().show();
DoubtOwl様
早々にご回答を頂きましてありがとうございます。
$(this).parent().parent().parent().show();
上記の1行で無事に解決致しました。
お蔭様で大幅にソースの見通しが良くなると共にメンテナンスの向上につながりました。
お世話になりました。
No.2
- 回答日時:
スクリプトをちゃんと見ていませんが、サイドメニューのアコーディオン動作を項目の数などに影響されずに記述したいということでしょうか?
勝手なイメージでご提示のサイトとは関係なく記述したので、動作が若干異なるかもしれませんが、こんなのでは?
※ 構造は変わらないということなので、基本的にそのままです。
※ スクリプトで必要とするid等は、包含要素のclass="acoordion"のみです。
※ CSSはテストのための最小限でいい加減なので、作り直してください。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head><title>test</title>
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<style type="text/css">
.accordion, .accordion *{ padding: 0; margin: 0; }
.accordion ul, .accordion li { list-style-type: none; }
.accordion dt, .accordion ul li { width:250px; height:50px; border:1px solid #8AC; }
.accordion>dt { background-color: #8DE; }
.accordion dl dt { color:#FFF; background-color: #8AC; }
</style>
<script type="text/javascript" src="http://www.google.com/jsapi" ></script>
<script type="text/javascript">google.load("jquery","1");</script>
<script type="text/javascript">
$(function(){
$(".accordion dl>dt").click(function(){
$(this).next("dd").slideToggle();
}).next("dd").hide();
});
</script>
</head>
<body>
<dl class="accordion">
<dt><img src="hoeg.gif" width="250" height="50" alt="シャンプー"></dt>
<dd>
<dl>
<dt>シャンプーについて</dt>
<dd>
<ul>
<li><a href="#">おすすめシャンプー、</a></li>
<li><a href="#">たまにはシャンプーも香りで選んでみませんか?</a></li>
</ul>
</dd>
</dl>
</dd>
<dd>
<dl>
<dt>ノンシリコンシャンプー</dt>
<dd>
<ul>
<li><a href="#">今だから知りたいノンシリコンシャンプーのあれこれ!?</a></li>
<li><a href="#">ノンシリコンシャンプーとその効果まとめ</a></li>
<li><a href="#">ノンシリコンシャンプーと髪の関係</a></li>
<li><a href="#">ノンシリコンシャンプーできしみや枝毛などに効果はあるのか?疑問に迫る</a></li>
<li><a href="#">ノンシリコンシャンプーの各種メリット</a></li>
</ul>
</dd>
</dl>
</dd>
<dd>
<dl>
<dt>トリートメント</dt>
<dd>
<ul>
<li><a href="#">トリートメントの使い方と効果</a></li>
<li><a href="#">トリートメントの正しい知識を身につけ、美しく健康な髪の毛に!</a></li>
<li><a href="#">トリートメントを選ぶ理由</a></li>
<li><a href="#">トリートメントで髪を変える!!</a></li>
</ul>
</dd>
</dl>
</dd>
<dd>
<dl>
<dt>アミノ酸シャンプー</dt>
<dd>
<ul>
<li><a href="#">アミノ酸シャンプーの効果と正しい使い方</a></li>
<li><a href="#">各種の頭髪・頭皮トラブルに対するアミノ酸シャンプーの効果</a></li>
<li><a href="#">薄毛や育毛に効果的なアミノ酸シャンプーで髪の悩みから解放!</a></li>
<li><a href="#">乾燥肌、きしみ、くせ毛のトラブルにも効果的なアミノ酸シャンプー選び</a></li>
</ul>
</dd>
</dl>
</dd>
</dl>
</body>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 所得税 会社のミスによる過年度分の確定申告の修正 4 2022/05/16 13:46
- JavaScript スマホ上で、左右スワイプで次のページに移動させたいです 2 2022/11/11 17:04
- プリンタ・スキャナー 「用紙が違う」メッセージが頻発 4 2022/08/22 08:30
- デスクトップパソコン レガシモードからUEFIモードにするソフトは 7 2022/09/16 14:39
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- 財務・会計・経理 過年度の課税漏れ給与に対する対応方法 2 2022/05/17 10:14
- 仕事術・業務効率化 効率的な勉強方法(分野問わず)を教えてください 1 2023/08/16 01:33
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- Excel(エクセル) Excel でマクロ利用しセル内テキストを修正しております(半角カナを全角にするなど)。 ただ、セル 4 2023/06/15 21:29
- 心理学 記憶すべき内容を順番で覚える場合、最初の方にある内容と最後の方にある内容の再生成績(正答率)が高い現 1 2023/07/17 17:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字と数字が混在する要素のsor...
-
ホームページビルダー15 メニュ...
-
プルダウンメニュー連動後の処...
-
jqueryアコーディオンのマウス...
-
JQueryで、liタグの背景に色を...
-
ツリーメニューについて
-
jqueryプルダウンメニュー個別着色
-
javascript テキストエリアを1...
-
MAX関数を使ってからLEFT JOIN...
-
htmlの記述で link rel=styles...
-
画像の上に画像リンクを貼る方法
-
スライダーを実装した場合、ペ...
-
背景色を一定時間ごとにランダ...
-
文字を固定したいのですが…
-
javascriptでURLにマウスオーバー
-
[急ぎ] videoタグで埋め込んだm...
-
離れた場所にマウスオーバーで...
-
c++std::string型をTCHARに変換...
-
タブで開いてさらにタブ内をア...
-
1行で左寄せと右寄せと中央揃え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
jqueryのsortableで一部ソート...
-
javascriptでEnterキーをtabキ...
-
クリックした<a>タグのみにClas...
-
チェックボックスに入っている...
-
【javascript で動的に a タグ...
-
jquery ドロップダウンメニュー...
-
「jQuery」アコーディオンメニ...
-
jQueryで、リンクURLの一致を確...
-
jQueryのeqで最後からn番目以降...
-
ネストされたチェックボックス...
-
javascriptで、クリックしたら...
-
onmouseoverの表示切り替えが上...
-
文字と数字が混在する要素のsor...
-
jQueryでネスト構造の<li>がク...
-
タブメニューを上下に設置
-
<li></li>の数を制限
-
jQuery多層式アコーディオンメ...
-
どの<li><a> が押されたか判別...
-
CSSとJavaScriptを使ってドロッ...
-
複数の画像をランダム(シャッ...
おすすめ情報