ユーザーが行を追加および削除できる動的テーブルがあります。ユーザーがボタンをクリックして行を追加するときに、最初のテーブル行のコピーである保存されたjQueryオブジェクトをDOMに挿入したいと思います.baseRow
。この行内には、将来追加される行のために存続する委任されたクリックイベントも必要です。
ただし、現在の実装(Chrome / IEでテスト済み)には2つの問題があります。1つ目は、最初のイベントが発生した後にクリックハンドラーが中断することです。.html()
の後にチェーンすることでこれを解決できます.clone()
が、そうすると、クローンから親要素が不可解に削除されtr
、子要素のみに縮小されます。
問題の例については、このjsフィドルを参照してください。コードのサンプルについては、以下を参照してください。
JS
$('document').ready(function(){
var $baseRow = $('.baseRow').clone(true,true);
$('table').delegate('.addRow','click',function(){
$('tbody').append($baseRow);
});
});
HTML
<table>
<thead>
<tr>
<th>Add Row</th>
<th>Header 1</th>
<th>Header 2</th>
</tr>
</thead>
<tbody>
<tr class="baseRow">
<td class="addRow">+</td>
<td>Body 1</td>
<td>Body 2</td>
</tr>
</tbody>
</table>