1

私はjqueryにかなり慣れていませんが、次のことをしようとしています:リンクをクリックし、フォームをreplaceWith()し、フォームの送信をクリックすると、2番目のjquery関数とajax呼び出しと別のreplaceWith()がトリガーされます。

この2つの機能です

$(function addtop10fromuserpage() {
    $(".addshowtotop10").click(function () {
        var button = $(this);
        button.replaceWith('<form><input class="addtop10userinput" type="text" name="seriesname" /><input type="submit" class="button small addtop10usersubmit" value="Add" /></form>');
    });
});


$(function addtop10fromuserpageshowadd() {
    $(".addtop10usersubmit").click(function () {
        var button = $(this);

        var position = button.closest(".top-rating").find(".top-rating-text").html();
        alert('position');
    });
});

基本的に、どちらの関数も別々に呼び出せば問題ありませんが、replacewith フォームから 2 番目の関数を呼び出すと機能しません。何故ですか?

ありがとう。

4

1 に答える 1

0

要素は動的に作成されるため、イベント委任ベースのハンドラーを使用する必要があります

$(function addtop10fromuserpage() {
    $(document).on('click', ".addshowtotop10", function () {
        var button = $(this);
        button.replaceWith('<form><input class="addtop10userinput" type="text" name="seriesname" /><input type="submit" class="button small addtop10usersubmit" value="Add" /></form>');
    });
});


$(function addtop10fromuserpageshowadd() {
    $(document).on('click', ".addtop10usersubmit", function () {
        var button = $(this);

        var position = button.closest(".top-rating").find(".top-rating-text").html();
        alert('position');
    });
});
于 2013-08-31T09:00:12.000 に答える