1

我对 jquery 很陌生,但我正在尝试执行以下操作:单击链接,replaceWith() 表单并单击表单中的提交触发第二个 jquery 函数和 ajax 调用以及另一个 replaceWith()。

这是两个功能

$(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 表单中调用第二个函数,则它不起作用。这是为什么?

谢谢。

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 回答