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

回答編集履歴

2

表現の修正

2015/10/18 21:06

投稿

hirohiro
hirohiro

スコア2068

answer CHANGED
@@ -41,4 +41,4 @@
41
41
  ```
42
42
 
43
43
 
44
- また1.9以降ではliveは廃止されていれerrorになるうえ、代替の.on()このコードでは多分triggerが実行されません。
44
+ また1.9以降ではliveは廃止されていれerrorになるうえ、代替の.on()を使ってもこのコードでは多分triggerが実行されません。

1

修正

2015/10/18 21:05

投稿

hirohiro
hirohiro

スコア2068

answer CHANGED
@@ -1,7 +1,23 @@
1
1
  > 質問:$('.repair [name]')の箇所をどう書けばいいのでしょうか。
2
- この箇所の書き方自体1.8以前で動なら問題ないと思います。
2
+ この箇所の書き方自体は(nameがundefinedになりそうすが)このままでと思います。
3
3
  イベントがキックされないのはターゲットがずれているせいです。
4
+ ただ、ユニークネームを付けるのに、追加してからイベントで変更という手順は迂遠に思えます。
4
- ただ、追加時以外にこのイベントハンドに使い道が無いなら、この方法はやめてネーミングは別の方法を検討したほうがいいと思い
5
+ 追加時以外にこのイベントハンドに使い道が無いなら、ネーミングは別の方法を検討したほうがいいかも知れせん
6
+ こんな感じで(functionの部分は適当です)
7
+ ```javascript
8
+ $(function(){
9
+ var repairCount = 1;
10
+ if($("#addBtn").length) {
11
+ $("#addBtn").on('click', function() {
12
+ repairCount++;
13
+ var r = $("#orderTable .repair.template").clone()
14
+ r.removeClass('template');
15
+ r.find('[name]').attr('name',function(){return 'part'+repairCount;});
16
+ r.insertBefore("#orderTable .btnTr");
17
+ });
18
+ }
19
+ });
20
+ ```
5
21
 
6
22
  ---
7
23
  triggerが実行されない理由ですが、ターゲットが新規に作成するtrのchildrenだからだと思います。