🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

2177閲覧

領域外のクリックでメニューを閉じたいのです!

cwhiro

総合スコア21

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2019/10/01 05:55

<script> $(function(){ $(".ddd").css("display","none"); $(".button-toggle").on("click", function() { $(".ddd").slideToggle(); }); }); </script> <script> $(function(){ var flg = "off"; $('.button-toggle').on('click', function(){ if(flg == "off"){ $(this).html("<div>close</div>"); flg = "on"; }else{ $(this).html(""); flg = "off"; } }); }); </script> <script> $(function() { var flg = "on"; $(document).click(function() { if(flg == "on"){ $(".button-toggle").click();} flg = "off"; }); }); </script>

こんにちは!
上2つのスクリプトで、メニューの開閉と、開閉時のデザインをコントロールしています。

問題は3つ目のスクリプトで、メニューが開いているときに、領域外をクリックするとメニューが閉じるよう試行錯誤しているのですが、なかなかうまくいきません。どなたかご教示をいただければ幸いです。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2019/10/01 06:00

HTMLもお願いします
cwhiro

2019/10/01 06:41

お返事ありがとうございます。 htmlこちらになります。 <div class="wrap"> <div class="button-toggle"> <div>ボタン</div> </div> <div class="ddd"> <ul> <li> ボタンA </li> <li> ボタンB </li> </ul> </div> </div>
guest

回答1

0

ベストアンサー

jQuery

1 $(document).click(function(event) { 2 if ($(event.target).closest('.button-toggle').length) { 3 return false; 4 } 5 6 $(".button-toggle:has(div)").click(); 7 });

https://api.jquery.com/has-selector/

投稿2019/10/01 06:57

x_x

総合スコア13749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cwhiro

2019/10/01 07:12

できました!ありがとうございます!
cwhiro

2019/10/01 07:38

すいません、スタイルなど当てて当ててみましたら、いつでもどこでもクリックに反応するようになってしまいました。もしまだお付き合いいただけるなら、見ていただくことできますでしょうか。 スタイルなどあてたコードです <!--1つめ--> <script> $(function(){ $(".teltel").css("display","none"); $(".button-toggle").on("click", function() { $(".teltel").slideToggle(); $(this).toggleClass("telactive"); }); }); </script> <script> $(function(){ var flg = "off"; $('.button-toggle').on('click', function(){ if(flg == "off"){ $(this).html("<div class='stelclose'><span class='icon-cross1'></span></div>"); flg = "on"; }else{ $(this).html("<div class='stel'>でんわ</div><div class='stel2' ><span class='icon-phone'></span></div>"); flg = "off"; } }); }); </script> <div class="callwrap"> <div class="button-toggle"> <div class="stel">でんわ</div> </div> <div class="teltel"> <ul> <li> <a href="tel:000000" A</a> </li> <li> <a href="tel:000000" B</a> </li> </ul> </div> </div>
x_x

2019/10/01 08:02

リンク先にあるように、:has(div) は子孫の div の有無をチェックしているので両方とも div を入れると正しく動きません。 :has(.stelclose) に変更してみてください。
cwhiro

2019/10/01 08:32

何度もありがとうございます。 ただいま全力で頭回転させてます。has(.stelclose)にしてみたところ、開いてすぐにまた閉じる動きになってしまいました。
cwhiro

2019/10/01 09:12

関係ありそうな.stelや.teltelなど各クラスを色々と組み合わせてあてはめてみましたが、うまく機能いたしませんでした。あとちょっとのような感じもするのですが。 ×_×様、大変お詳しそうなので、もし上手に機能するまでお付き合いいただければ、何かお礼をと思ったのですが、そういったやり取りはこの場ではふさわしくないような気もして、連絡先をと思ったのですが、見つけられませんでした。色々初心者ですいません。
x_x

2019/10/01 09:22

あまり時間が取れなかったので追加のコードについてはほとんど見ていません。 わたしが時間が取れるようになるまで待つか、ほかの回答を待つか、あるいは自力で解決するかしてもらえたらと思います。
cwhiro

2019/10/01 09:55

ありがとうございます。もう少しねばってみます!
cwhiro

2019/10/01 20:26

×_×様 なんとか解決をいたしました! 最終的に下記のコードで意図した動きをするようになりました。共通のクラスをところどころ利用しているため、全てにクラスの追加を行えば個別に動きそうです。 おつきあいいただいて、ありがとうございました。 $(function () { $(".button-toggle").click(function (e) { if($(".teltel").length>0) $(".teltel").show(); e.stopPropagation(); }); }); $(document).click(function() { if($(".stelclose").length>0) $(".button-toggle").click(); });
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問