
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブル要素の操作
-
クリックされた罫表セルの行番...
-
ボタン無しでフォーム内容送信
-
javaScriptの変数をJavaの変数...
-
onchangeイベントを強制的に発...
-
return trueとreturn falseの用...
-
<input>の選択肢をプルダウンメ...
-
Formのシリアライズができない
-
RegularExpressionValidatorの...
-
Javascriptに条件分布ついて(再)
-
C#(csファイル)とjavascriptと...
-
name = cats[1] という input ...
-
switchを使って四則演算のプロ...
-
複数のformから値を取得する方法
-
データベースの値を判断してラ...
-
テキストボックスにカーソルを...
-
テーブル内のチェックボックス...
-
複数のチェックボックス項目が...
-
idの振り直しについて
-
画面表示とともに、テーブルの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プルダウンで選択すると、DBの...
-
ハイパーリンクを別ウインドウ...
-
特定<table>内の<td>の色を変える
-
JavaScriptで特定のtdタグにcla...
-
JavaScriptでテーブルの行入れ替え
-
javascriptで質問です。 displa...
-
クリックされた罫表セルの行番...
-
jsで質問です。 displayプロパ...
-
JavaScriptでテーブルをクリッ...
-
テーブル内に表示されている数...
-
jqueryとscriptでTABLEのセルを...
-
tableの任意行にfocusをあてる
-
スクロールバーの表示位置を変...
-
Selenium.ChromeDriverの使い方...
-
テーブルの項目の値取得
-
jspでのArrayListの値の表示
-
二次元配列に数字をランダムに...
-
テーブルで表示する『列』を絞...
-
EasyUIのSubGrid(jquery)にお...
-
ブルダウン選択でページの表示...
おすすめ情報