質問編集履歴

3

改善

2019/11/13 05:53

投稿

zuibunnemutai
zuibunnemutai

スコア4

test CHANGED
@@ -1 +1 @@
1
- [angular]タブ操作クリックイベント
1
+ [bootstrap4]dropdownで親要素への伝播止め方法
test CHANGED
@@ -1,14 +1,24 @@
1
- 以下のsampleというコンポーネント内でクリックによりタブ操作を行えるボタンを実装したいですが、tabのタグ内class内のactiveをON<=>OFFする方法がわかりません
1
+ 以下のsampleというコンポーネント内でドロップダウンメニュー(子)を追加したのですが、ドロップダウン(子)を押下した際に、親要素のクリックイベントも同時発火してしまう為、子要素のみドロップダウメニュー開くように実装したいです。
2
2
 
3
+
4
+
3
- セレクトボックスでいうselectIndexのようactiveタブを設定するよう方法があるのでしょうか
5
+ stopPropagationを使用しようと思ったのですがtoggle操作でありclickイベントが発生するわけではく、どちらイベントも発火しませんでし
4
6
 
5
7
  できればjqueryなしで実現したいです。
6
8
 
7
9
 
8
10
 
9
- - コンポーネント構成
11
+ 使用技術
10
12
 
13
+ - angular5
14
+
15
+ - bootstrap4
16
+
17
+
18
+
19
+ コンポーネント構成
20
+
11
- sample.component
21
+ - sample.component
12
22
 
13
23
  |_sample.component.html
14
24
 
@@ -32,43 +42,61 @@
32
42
 
33
43
  ``` sample.component.html
34
44
 
35
- <div class="detail" (click)="changeActiveTab()">
36
-
37
- クリックボタン</div>
38
-
39
-
40
-
41
45
  <div>
42
46
 
43
- <nav>
47
+ <ng-container *ngFor="let sample of sampleList, let i = index" >
44
48
 
45
- <div class="nav nav-tabs" id="nav-tab" role="tablist">
49
+ <ul (click)="parentsAction()" class="cursor-pointer" >
46
50
 
47
- <a class="nav-item nav-link active" id="nav-a-tab" data-toggle="tab" href="#nav-a" role="tab" aria-controls="nav-a" aria-selected="true">タブA</a>
51
+ <li>
48
52
 
49
- <a class="nav-item nav-link" id="nav-b-tab" data-toggle="tab" href="#nav-b" role="tab" aria-controls="nav-b" aria-selected="false">タブB</a>
53
+ <div class="row" style="box-sizing: border-box;">
50
54
 
51
- </div>
55
+ <div class="col-6 pl-10 pr-2 my-auto" style="box-sizing: border-box;">
52
56
 
53
- </nav>
57
+ 親イベント発火
54
58
 
55
- <div class="tab-content" id="nav-tabContent">
59
+ </div>
56
60
 
57
- <div class="tab-pane fade show active" id="nav-a" role="tabpanel" aria-labelledby="nav-a-tab">
61
+ <div class="col-6" style="box-sizing: border-box;">
58
62
 
59
- tab A content
63
+ <div class="row">
60
64
 
61
- </div>
65
+ <div class="col-12 clearfix">
62
66
 
63
- <div class="tab-pane fade" id="nav-b" role="tabpanel" aria-labelledby="nav-b-tab">
67
+ <div class="m-auto float-right">
64
68
 
65
- tab B content
69
+ <div class="dropright">
66
70
 
67
- </div>
71
+ <i (click)="childOnlyAction()" id="open-dropdown" aria-hidden="true" class="material-icons" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">more_horiz</i>
68
72
 
69
- </div>
73
+ <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
70
74
 
75
+ <a class="dropdown-item">プルダウンアイテム1</a>
76
+
77
+ <a class="dropdown-item">プルダウンアイテム2</a>
78
+
71
- </div>
79
+ </div>
80
+
81
+ </div>
82
+
83
+ </div>
84
+
85
+ </div>
86
+
87
+ </div>
88
+
89
+ </div>
90
+
91
+ </div>
92
+
93
+ </li>
94
+
95
+ </ul>
96
+
97
+ </ng-container>
98
+
99
+ </div>
72
100
 
73
101
  ```
74
102
 
@@ -78,9 +106,15 @@
78
106
 
79
107
  ```
80
108
 
81
- changeActiveTab(value) {
109
+ childOnlyAction() {
82
110
 
111
+ event.stopPropagation();
112
+
113
+ console.log('click inside input');
114
+
115
+ return false;
116
+
83
- //不明箇所
117
+ //これだと親子どちらもクリックでき
84
118
 
85
119
  }
86
120
 

2

誤字

2019/11/13 05:53

投稿

zuibunnemutai
zuibunnemutai

スコア4

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,8 @@
1
1
  以下のsampleというコンポーネント内でクリックによりタブ操作を行えるボタンを実装したいのですが、tabのタグ内class内のactiveをON<=>OFFする方法がわかりません。
2
2
 
3
3
  セレクトボックスでいうselectIndexのような、activeタブを設定するような方法があるのでしょうか。
4
+
5
+ できればjqueryなしで実現したいです。
4
6
 
5
7
 
6
8
 

1

誤字

2019/11/12 06:07

投稿

zuibunnemutai
zuibunnemutai

スコア4

test CHANGED
File without changes
test CHANGED
@@ -52,7 +52,7 @@
52
52
 
53
53
  <div class="tab-content" id="nav-tabContent">
54
54
 
55
- <div #navown class="tab-pane fade show active" id="nav-a" role="tabpanel" aria-labelledby="nav-a-tab">
55
+ <div class="tab-pane fade show active" id="nav-a" role="tabpanel" aria-labelledby="nav-a-tab">
56
56
 
57
57
  tab A content
58
58