1

以下をご覧ください

フィドル

.on を使用していますが、新しく作成されたアイテムにクリック イベントが適用されないようです。新しいアイテムもクリックイベントをリッスンするにはどうすればよいですか?

 $("#addNewAddresses").on("click", function () {
        console.log("adding an address");
        var $table = $(this).parent().find("table");
        var html = "<tr  class='item'>";
        html += "<td class='city'>";
        html += "<input id='City' class='inputStylized' type='text' placeholder='City'>";
        html += "</td>";

        html += "  </tr>"
        $(html).appendTo($table);
    });

    $(".city").on("click", function () {
        console.log("city was clicked");
    });
4

2 に答える 2

3

以下のように、イベントを静的な最も近い親またはdocumentそれ自体に委任する必要があります。

$("#address-table").on("click", ".city", function () {
    console.log("city was clicked");
});

document次の方法で委任できます。

$(document).on("click", ".city", function () {
    console.log("city was clicked");
});

デモフィドル

于 2013-10-09T11:29:43.240 に答える
0

これを置くだけです:

$(".city").on("click", function () {
    console.log("city was clicked");
});

その後.appendTo、新しく追加された入力に対してイベントが設定されます:)

JSFiddle

于 2013-10-09T11:31:40.773 に答える