質問するログイン新規登録

質問編集履歴

3

書式の改善

2017/09/20 10:38

投稿

wizz
wizz

スコア7

title CHANGED
@@ -1,1 +1,1 @@
1
- 動的に生成したDOM要素にイベントを割り当てたい
1
+ 動的に生成するDOM要素にイベントバインディングを割り当てたい
body CHANGED
File without changes

2

書式の改善

2017/09/20 10:38

投稿

wizz
wizz

スコア7

title CHANGED
File without changes
body CHANGED
@@ -3,15 +3,42 @@
3
3
  動的に生成したinputにフォーカスが当たった時にアラートを出したいと考えて入るのですが、
4
4
  呼び出されません...
5
5
 
6
+ templateで定義した、
7
+
8
+ ```html
9
+ <button (click)="addInput()">ADD</button>
10
+ ```
11
+ は正しく呼び出すことができるのですが、
12
+ 動的に生成した、
13
+ ```html
14
+ <input type="text" (focus)="focusFunc()" />
15
+ ```
16
+ は動作しません。
17
+
18
+ ChoromeのDeveloper Toolsで確認したところ、以下のように
19
+ なっていました。
20
+ ```html
21
+ <!-- templateで定義 -->
22
+ <button _ngcontent-c0>ADD</button>
23
+
24
+ <!-- 動的に生成 -->
25
+ <input type="text" (focus)="focusFunc()" />
26
+ ```
27
+ イベントバインディングがそのまま表示されてしまっているので、
28
+ DOMに追加後に何か処理を行わないといけないのでしょうか?
6
29
  初歩的な質問で申し訳ないのですが、アドバイスをよろしくお願い致します。
7
30
 
8
31
  ###該当のソースコード
9
- ```typeScript
32
+ ```typescript
33
+ import {
34
+ Component,
35
+ } from '@angular/core';
36
+
10
37
  @Component({
11
38
  selector: 'app-root',
12
39
  template: `
13
40
  <div id="hoge">
14
- <button (click)="addInput()">ADD</button>
41
+ <button (click)="addInput()">ADD</button>
15
42
  </div>
16
43
  `,
17
44
  })
@@ -20,7 +47,7 @@
20
47
  addInput() {
21
48
  let elm = document.getElementById('hoge');
22
49
  let divElm = document.createElement('div');
23
- divElm.innerHTML = '<input (focus)="focusFunc()" />';
50
+ divElm.innerHTML = '<input type="text" (focus)="focusFunc()" />';
24
51
  elm.appendChild(divElm);
25
52
  }
26
53
 

1

誤って公開してしまったので、更新しました。

2017/09/20 10:27

投稿

wizz
wizz

スコア7

title CHANGED
File without changes
body CHANGED
@@ -1,26 +1,31 @@
1
1
  ###前提・実現したいこと
2
2
 
3
- ここに質問したいことを詳細に書いてください
4
- (例)PHP(CakePHP)で●●なシテムを作
3
+ 動的に生成したinputにフォーカが当たた時にアラートを出したと考えて入るのでが、
5
- ■■な機能を実装中に以下のエラーメッセージが発生しした。
4
+ 呼び出されせん...
6
5
 
7
- ###発生る問題・エラーメッセージ
6
+ 初歩的な質問で申訳なのですが、アドバイスをよろしくお願い致します。
8
7
 
9
- ```
10
- エラーメッセージ
11
- ```
12
-
13
8
  ###該当のソースコード
14
9
  ```typeScript
15
10
  @Component({
11
+ selector: 'app-root',
16
12
  template: `
17
- <div id="hoge">`
13
+ <div id="hoge">
14
+ <button (click)="addInput()">ADD</button>
15
+ </div>
16
+ `,
18
17
  })
19
18
 
19
+ export class AppComponent {
20
+ addInput() {
21
+ let elm = document.getElementById('hoge');
22
+ let divElm = document.createElement('div');
23
+ divElm.innerHTML = '<input (focus)="focusFunc()" />';
24
+ elm.appendChild(divElm);
25
+ }
26
+
27
+ focusFunc() {
28
+ alert('focus!!');
29
+ }
30
+ }
20
- ```
31
+ ```
21
-
22
- ###試したこと
23
- 課題に対してアプローチしたことを記載してください
24
-
25
- ###補足情報(言語/FW/ツール等のバージョンなど)
26
- より詳細な情報