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

回答編集履歴

2

テキスト修正

2018/02/17 10:00

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -30,4 +30,46 @@
30
30
  ```html
31
31
  <span onclick="deleteRow(); return(false);">
32
32
  ```
33
- のようにすればよいかと思います。
33
+ のようにすればよいかと思います。
34
+
35
+ ---
36
+ **補足**
37
+
38
+ 回答に
39
+
40
+ > ```html
41
+ > <span onclick="deleteRow(); return(false);">
42
+ > ```
43
+ > のように
44
+
45
+
46
+ と書いたほうのやり方で修正すると、たとえば以下になります。
47
+
48
+ [https://jsfiddle.net/jun68ykt/sLhfz1ye/31/](https://jsfiddle.net/jun68ykt/sLhfz1ye/31/)
49
+
50
+
51
+ 行を削除する関数を、以下のように jQuery のヘルパ関数として設定します。
52
+
53
+ ```javascript
54
+
55
+ $.deleteRow = function() {
56
+ var row = $(this).closest("tr").remove();
57
+ alert();
58
+ $(row).remove();
59
+ };
60
+ ```
61
+
62
+ この `$.deleteRow` を、 追加する行の中の `<span>` の clickハンドラとして使うには、
63
+
64
+ ```javascript
65
+ <span onclick="$.deleteRow.apply(this);"
66
+ ```
67
+
68
+ と書きます。
69
+ また、初期表示のときの行に、clickハンドラを設定するところは
70
+
71
+ ```javascript
72
+ $('.delete').click($.deleteRow);
73
+ ```
74
+
75
+ と書けます。

1

テキスト修正

2018/02/17 10:00

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -25,9 +25,8 @@
25
25
  しかし明らかにこれは冗長で、本当は追加した行の span にのみ
26
26
  行を削除するハンドラを設定すればよいのですが、そうするには、
27
27
  .after() に長い文字列を与えるのではなく、 span を $('<span>') で
28
- 作って、それに click で行削除を設定するか、もしくは
28
+ 作って、それに `.click()` で行削除の関数を設定するか、もしくは
29
- 今のまま文字列でいくなら、 行削除を行う処理を関数化して
29
+ 今のまま文字列でいくなら、 行削除を行う処理を個別に関数化して
30
-
31
30
  ```html
32
31
  <span onclick="deleteRow(); return(false);">
33
32
  ```