jqueryでボタンをクリックするとメニューが開き、
かつ領域外をクリックすると閉じる設定にしたのですが、
自身のボタンをクリックしてもメニューが閉じなくなってしまいました。
どうすればボタンクリックで閉じるようになるのでしょうか。
以下、コードです。
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9. …
<script>
$(function() {
$('.open').hide();
$('.btn').each(function() {
$(this).click(function() {
$('.open').hide();
$(this).next('.open').slideToggle("fast");
});
});
});
$(document).on('click', function(e) {
if (!$(e.target).closest('.btn').length) {
$('.open').fadeOut();
}
});
</script>
以下はhtmlです。
<div class="btn"><p>ボタン</p></div>
<table class="open">
<tr><td>コンテンツ</td><td>コンテンツ</td></tr>
<tr><td>コンテンツ</td><td>コンテンツ</td></tr>
</table>
javascript、jqueryともに初心者レベルです。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
こんにちは
細かなところをどうしたいのかよくわかりませんが・・・
(消すのがhideだったりfadeOutだったり、表示はslideだったりなので)
一応似せたつもりですが、こんな感じではどうでしょうか?
$(function(){
$('.open').hide();
$(document).on('click', function(e){
var b = $(e.target).closest('.btn');
if(!b.length || b.next('.open:visible').length){
$('.open').fadeOut();
} else {
$('.open').hide();
b.next('.open').slideDown('fast');
}
});
});
No.2
- 回答日時:
とりあえずこんな感じ?
$(function() {
$('.open').hide();
$('.btn').on('click',function() {
$(this).next('.open').fadeToggle();
});
$(document).on('click','*', function(e) {
e.stopPropagation();
if($(this).closest('.open,.btn').length==0){
console.log($(this).get(0));
$('.open').fadeOut();
}
});
});
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- HTML・CSS 【CSS】:hasで可能? imgを含むtr要素を選択したい 1 2022/11/17 14:36
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定<table>内の<td>の色を変える
-
JavaScriptで特定のtdタグにcla...
-
ハイパーリンクを別ウインドウ...
-
一覧から選択した行の行番号を...
-
ブルダウン選択でページの表示...
-
tableの任意行にfocusをあてる
-
マウスをブラウザの外に出した...
-
jqueryとscriptでTABLEのセルを...
-
至急!GetElementById でtdの...
-
正規表現で任意の文字列が含ま...
-
プルダウンで選択すると、DBの...
-
jquery datatablesを使用 イン...
-
【JavaScript】tableタグを利用...
-
Excelで作ったhtmlファイルのサ...
-
PERL
-
カレンダーの年月日の横に翌月...
-
Selenium.ChromeDriverの使い方...
-
プルダウン選択を変更すると、...
-
onchangeイベントを強制的に発...
-
select要素のvalueを配列で取得...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
jsで質問です。 displayプロパ...
-
javascriptで質問です。 displa...
-
ハイパーリンクを別ウインドウ...
-
JavaScriptで特定のtdタグにcla...
-
プルダウンで選択すると、DBの...
-
一覧から選択した行の行番号を...
-
tableの任意行にfocusをあてる
-
至急!GetElementById でtdの...
-
特定<table>内の<td>の色を変える
-
マウスをブラウザの外に出した...
-
添付画像のようなhtmlとcssのス...
-
スクロールバーの表示位置を変...
-
クリックされた罫表セルの行番...
-
チェックボックスにチェックが...
-
JavaScriptでテーブルの行入れ替え
-
HTML中のTABLEのデータを抽出す...
-
jquery datatablesを使用 イン...
-
JavaScriptでテーブルをクリッ...
-
階層式メニューをtableタグ内に
-
マウスオーバー時テーブルの背...
おすすめ情報