回答編集履歴
6
ご助力いただいた方のお名前を追記
answer
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
([https://jsfiddle.net/bkfer0zo/](https://jsfiddle.net/bkfer0zo/))
|
3
3
|
|
4
4
|
|
5
|
-
ご回答いただいたyambejp様、jun68ykt様、think49様、どうもありがとうございました。
|
5
|
+
ご回答いただいたyambejp様、jun68ykt様、think49様、そしてご意見をくださったmts10806様、皆様どうもありがとうございました。
|
6
6
|
|
7
7
|
```jQuery
|
8
8
|
// メニュー
|
5
ご回答いただいた方のお名前を追加
answer
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
([https://jsfiddle.net/bkfer0zo/](https://jsfiddle.net/bkfer0zo/))
|
3
3
|
|
4
4
|
|
5
|
-
ご回答いただいたyambejp様、jun68ykt様、どうもありがとうございました。
|
5
|
+
ご回答いただいたyambejp様、jun68ykt様、think49様、どうもありがとうございました。
|
6
6
|
|
7
7
|
```jQuery
|
8
8
|
// メニュー
|
4
リンクを追加
answer
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
素人があれこれ考えた結果でお目汚しかと思いますが、下記で実現したかった➀➁➂➃がすべてできました。
|
2
|
+
([https://jsfiddle.net/bkfer0zo/](https://jsfiddle.net/bkfer0zo/))
|
2
3
|
|
4
|
+
|
3
5
|
ご回答いただいたyambejp様、jun68ykt様、どうもありがとうございました。
|
4
6
|
|
5
7
|
```jQuery
|
3
解決したコードを修正
answer
CHANGED
@@ -1,5 +1,7 @@
|
|
1
|
-
|
1
|
+
素人があれこれ考えた結果でお目汚しかと思いますが、下記で実現したかった➀➁➂➃がすべてできました。
|
2
2
|
|
3
|
+
ご回答いただいたyambejp様、jun68ykt様、どうもありがとうございました。
|
4
|
+
|
3
5
|
```jQuery
|
4
6
|
// メニュー
|
5
7
|
var menus = `
|
@@ -10,16 +12,25 @@
|
|
10
12
|
`;
|
11
13
|
|
12
14
|
// ➀ボタンクリックでメニュー表示
|
15
|
+
// ➃複数のメニューが同時に表示されることは避けたい。
|
13
16
|
$(document).on('click','.E > button:not(.is_click)', function(e){
|
14
|
-
|
17
|
+
e.stopPropagation();
|
18
|
+
$('.menus').remove();
|
15
19
|
$(this).addClass('is_click');
|
16
20
|
$(this).after(menus);
|
17
21
|
});
|
18
22
|
|
19
|
-
// ➁もう一度クリックでメニュー非表示
|
23
|
+
// ➁もう一度クリックでメニュー非表示
|
24
|
+
// ➂ボタン以外のクリックでメニュー非表示
|
20
25
|
$(document).on('click','body', function(){
|
21
26
|
$('.E > button').removeClass('is_click');
|
22
27
|
$('.menus').remove();
|
23
28
|
});
|
24
29
|
|
30
|
+
// ついでにメニュー項目のクリックでメニューが閉じないようにする。
|
31
|
+
$(document).on('click','.menus li', function(e){
|
32
|
+
e.stopPropagation();
|
33
|
+
const menu = $(this).text();
|
34
|
+
alert('実行するメニューは'+menu+'です。');
|
35
|
+
});
|
25
36
|
```
|
2
解決していたかったため修正
answer
CHANGED
@@ -1,1 +1,25 @@
|
|
1
|
+
自己解決したと思い下記を書いてましたが補足の➃が実現できてませんでしたので、「解決済み」を元に戻し、引き続きご回答を募らせて頂ければと思います。
|
2
|
+
|
1
|
-
|
3
|
+
```jQuery
|
4
|
+
// メニュー
|
5
|
+
var menus = `
|
6
|
+
<ul class="menus">
|
7
|
+
<li>たべる</li>
|
8
|
+
<li>さわる</li>
|
9
|
+
</ul>
|
10
|
+
`;
|
11
|
+
|
12
|
+
// ➀ボタンクリックでメニュー表示
|
13
|
+
$(document).on('click','.E > button:not(.is_click)', function(e){
|
14
|
+
e.stopPropagation();
|
15
|
+
$(this).addClass('is_click');
|
16
|
+
$(this).after(menus);
|
17
|
+
});
|
18
|
+
|
19
|
+
// ➁もう一度クリックでメニュー非表示し、➂それ以外のクリックでも非表示にする。
|
20
|
+
$(document).on('click','body', function(){
|
21
|
+
$('.E > button').removeClass('is_click');
|
22
|
+
$('.menus').remove();
|
23
|
+
});
|
24
|
+
|
25
|
+
```
|
1
間違っていました。
answer
CHANGED
@@ -1,28 +1,1 @@
|
|
1
|
-
・「それ以外のクリック」を「bodyのクリック」としました。(➁➂)
|
2
|
-
・ボタンのクリックについてはハプリングというのを抑えることで実現できました。(➀)
|
3
|
-
|
4
|
-
ご回答いただいたjun68ykt様、yambejp様、本当にありがとうございました。
|
5
|
-
|
6
|
-
|
1
|
+
間違っていました。。
|
7
|
-
// メニュー
|
8
|
-
var menus = `
|
9
|
-
<ul class="menus">
|
10
|
-
<li>たべる</li>
|
11
|
-
<li>さわる</li>
|
12
|
-
</ul>
|
13
|
-
`;
|
14
|
-
|
15
|
-
// ➀ボタンクリックでメニュー表示
|
16
|
-
$(document).on('click','.E > button:not(.is_click)', function(e){
|
17
|
-
e.stopPropagation();
|
18
|
-
$(this).addClass('is_click');
|
19
|
-
$(this).after(menus);
|
20
|
-
});
|
21
|
-
|
22
|
-
// ➁もう一度クリックでメニュー非表示し、➂それ以外のクリックでも非表示にする。
|
23
|
-
$(document).on('click','body', function(){
|
24
|
-
$('.E > button').removeClass('is_click');
|
25
|
-
$('.menus').remove();
|
26
|
-
});
|
27
|
-
|
28
|
-
```
|