调用load()函数后ajax调用不起作用

时间:2021-06-27 07:53:16

标签: jquery ajax

在进行 ajax 调用后尝试刷新 div,但只有第一个 ajax 调用有效。再次加载 div 后,ajax 调用已死。

$('.sequence_no').on("change", function () {
        var selector = $(this).closest("tr");
        var sequence_no = $(this).val();
        var s_no = selector.find('.sno').val();
        var chapter_id = selector.find('.chapter_id').val();
        var lesson_id = selector.find('input[class*=lesson_id]').val();
        console.log(chapter_id);

        $.ajax({
            url: "../chapter-page/sequence.php",
            type: "POST",
            data: { chapter_id: chapter_id, lesson_id: lesson_id, sequence_no: sequence_no },
            cache: false,
            success: function (data) {

                console.log(data);

                $("#table2").load(window.location.href + " #table2");



            }

        })
    })

如果我不将 .load() 函数放入成功中,则一切正常

我是 jquery 的新手,所以描述性的答案将有助于我学习。

有人可以帮忙吗??

1 个答案:

答案 0 :(得分:0)

$.on 将事件绑定到传递给它的元素的函数(在本例中为 .sequence_no)。当您在 .load() 上调用 #table2 时,您出于所有意图和目的都会删除 #table2 的内容并将其替换为新加载的 HTML。

既然你注意到 .sequence_no 是在 #table2 里面,它在调用 .load 时被移除,然后,大概它被新加载的 HTML 替换,但是 {{ 的绑定1}} 发生在新元素加载之前,因此需要再次绑定。

TL;DR 您需要在 onchange 调用完成后再次调用整个 $.on 函数。