1. ホーム
  2. jquery

[解決済み] Jqueryのクリックイベントがappendメソッドの後に機能しない

2023-04-04 15:43:33

質問

テーブルに新しい行を追加するボタンがあるのですが、問題は .new_participant_form クリック イベントをリスンしないことです。

http://jsfiddle.net/cTEFG/

新しいエントリを追加]をクリックし、[フォーム名]をクリックします。

$('#add_new_participant').click(function() {


    var first_name = $('#f_name_participant').val();
    var last_name = $('#l_name_participant').val();
    var role = $('#new_participant_role option:selected').text();
    var email = $('#email_participant').val();


    $('#registered_participants').append('<tr><td><a href="#" class="new_participant_form">Participant Registration</a></td><td>'+first_name+ ' '+last_name+'</td><td>'+role+'</td><td>0% done</td></tr>');

    });

    $('.new_participant_form').click(function() {

        var $td = $(this).closest('tr').children('td');

        var part_name = $td.eq(1).text();
        alert(part_name);

    });
});

HTML

<table id="registered_participants" class="tablesorter">

<thead>
<tr> 
<th>Form</th>
<th>Name</th>
<th>Role</th>
<th>Progress </th>


</tr> 
</thead>


<tbody>
<tr> 
<td><a href="#" class="new_participant_form">Participant Registration</a></td>
<td>Smith Johnson</td>
<td>Parent</td>
<td>60% done</td>


</tr> 
</tbody>

</table>

<button id="add_new_participant"></span>Add New Entry</button> 

どのように解決するのですか?

使用方法 を使用します。 :

$('#registered_participants').on('click', '.new_participant_form', function() {

の任意の要素にクリックが委ねられるようにする。 #registered_participants にある、クラス new_participant_form を持つことで、イベントハンドラをバインドした後にそれが追加されたとしても。