
下記のようにHTMLを組んでjQueryを使ってアコーディオンメニューを作りました。
<dl id="List">
<dt>タイトル</dt>
<dd>詳細テキスト</dd>
<dt>タイトル</dt>
<dd>詳細テキスト</dd>
<dt>タイトル</dt>
<dd>詳細テキスト</dd>
</dl>
jQueryは下記の通りで検索して見つけたものを使わせていただきました。
jqueryのバージョンは「1.10.1」。
$(function(){
$('#List dd').hide();
$('#List dt').click(function() {
if($(this).next('dd').is(':visible')) {
$(this).next('dd').slideUp(300);
} else {
$(this).next('dd').slideDown(300).siblings('dd').slideUp(300);
}
});
});
これでdtのタイトルをクリックするとdd部分が表示され、
別のdt部分をクリックすれば、先に開いていたdd部分が隠れて、
クリックしたdtの下部にあるdd部分を表示するというように
問題なく機能してくれました。
これを活かしつつ、レスポンシブのようにしたいなと思ったのです。
仕様としては、パソコンで見る時はdd部分を隠さず表示して、
ブラウザー幅が480pxに以下になったら、
dd部分を隠してアコーディオンとして機能させたい、
と思いました。
プログラムは初心者ゆえ、ライブラリの応用しかできず、
検索で見つけ出したのが下記のようなソースです。
$(function() {
var w = $(window).width();
var x = 480;
if (w <= x) {
}
});
これに上のアコーディオン用のソースを合体させればいけるのではないか?
と漠然と思って(確証がもてるはずもなく…)下記のようにしてみました。
$(function() {
var w = $(window).width();
var x = 480;
if (w <= x) {
$('#kuchikomiList dd').hide();
$('#kuchikomiList dt').click(function() {
if($(this).next('dd').is(':visible')) {
$(this).next('dd').slideUp(300);
} else {
$(this).next('dd').slideDown(300).siblings('dd').slideUp(300);
}
});
}
});
動いてくれそうな気がしたのですが、
全く動いてくれませんでした(涙)
この情報だけを見て、
間違っている箇所がお分かりになる方がいらっしゃいましたら、
ぜひともご教授いただきたいのですが…
よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
修正済とのこと、了解です。
大したコード量でもありませんので、こちらで動かしてみると、
正常に動いているように、、、見えます。ブラウザ幅を非常に狭めてください。
(Firefox22.0:Linux, IE10:Windows8)
参照URLに載せてますので、ソースも見てください。
参考URL:http://d0.gotdns.com/accordion.html
あれこれとお試しいただいてありがとうございました。
サンプルのサイトを拝見した時、その瞬間には動作確認ができませんでした。
しかし幅を狭めた状態で更新したところ、dd部分が閉じられました。
ん?ということは、もしかしてローカルだからこんなことになるのか?
と思って、スマフォで確認したら、問題なく動作しておりました。
やはりローカルだから動作の確認が曖昧だったようです。
うちだけの現象かもしれませんが、
こういうこともあるんだなという勉強になりました。
重ね重ねありがとうございました。
No.2
- 回答日時:
下のjsソースではkuchikomiListとなってますが、
<dl id="List">は修正されているでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jsonテキストデータの並び替え...
-
スマホ上で、左右スワイプで次...
-
ラジオボタンを複数選択したと...
-
画面遷移を行わずに同一ページ...
-
Adobe acrobat proでフォームを...
-
初心者です。gulpでコンパイル...
-
階層別の組織図の自動作成について
-
jQueryで同じクラス名のものを...
-
ボタンを押したあとに画像を表...
-
Cookieに保存されない
-
任意の変数が任意の値になった...
-
台形公式
-
タグを教えてください。
-
jsで質問です。 formをsubmitし...
-
2025年相性がいい人のサイトの...
-
CookieをWebStoeageに変える
-
Outlookのアカウントがあるとメ...
-
jqueryのselect2で検索欄の文字...
-
<tr>指定した表の行要素をボ...
-
食材の期限を管理するためにGAS...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字列の操作
-
jQuery 複数のライブラリーを表示
-
jQueryのアコーディオン一番目...
-
階層別の組織図の自動作成について
-
【JQuery】iframeのリンク先変...
-
jqueryについて、$("+dd",this)...
-
jquery.validationEngine.js 添...
-
jqueryスライドショーを作成
-
アコーディオンメニューをブラ...
-
Javascriptを使ってQRコード読...
-
readyStateが4にならない原因
-
SQLのmaxで求めた値を変数に代...
-
JavascriptからPHPへのAjax通信...
-
JavaScriptでtabindexの変更っ...
-
インラインフレームを自動更新...
-
jQuery を外部ファイルから呼び...
-
FullCalendar の複数月表示につ...
-
パソコンで動くjavascriptがス...
-
Ajaxで文字化けしてしまいます
-
複数対応できるチェックボック...
おすすめ情報