0

jquery では、ユーザーが特定のオプション (この場合は「その他」) を選択すると、新しいテーブルの見出しを作成しようとしています。ただし、以下のコードは何もしません - 何か洞察はありますか? (JS/Jquery の新機能)。

注: select 要素は、jquery を介してテンプレートに追加されます (ユーザーがチェックボックスをオンにした場合)。

    <th>Did you graduate?</th>


</tr>
<tr id="college_info">

    <td><input class="id_checkbox" type="checkbox" id="college_grad" name="college_grad" value="yes">yes</input>
        </td>

</tr>   
<script>
    $( "#college_grad" ).one("click", function() {
        $( "#college_info" ).hide().append("<td><select id='college_degreeName'class='degree_name'><option value='bachelors'>Bachelors</option> <option class='id_otherOption' value='other'>Other</option></select></td>").show("slow");
    });

    $( "#college_degreeName").one("click", function() {
    if ( $( "#table_headings .college_degreeName" ).value =='other'){
    $( "#table_headings" ).append("<th id=other_degreeName'>Name of Degree/Certificate</th>");
    }
    });

</script>
4

1 に答える 1

2

直接イベント処理は、動的に追加された要素では機能しません。ライブまたはデリゲート イベント処理を使用する必要があります。

 $( "#table_headings").on("click","#college_degreeName", function() {
        if ( $(this).val() === 'other'){
        $( "#table_headings" ).append("<th id=other_degreeName'>Name of Degree/Certificate</th>");
        }
    });
于 2013-04-06T02:44:17.257 に答える