在进行 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 的新手,所以描述性的答案将有助于我学习。
有人可以帮忙吗??
答案 0 :(得分:0)
$.on
将事件绑定到传递给它的元素的函数(在本例中为 .sequence_no
)。当您在 .load()
上调用 #table2
时,您出于所有意图和目的都会删除 #table2
的内容并将其替换为新加载的 HTML。
既然你注意到 .sequence_no
是在 #table2
里面,它在调用 .load
时被移除,然后,大概它被新加载的 HTML 替换,但是 {{ 的绑定1}} 发生在新元素加载之前,因此需要再次绑定。
TL;DR 您需要在 onchange
调用完成后再次调用整个 $.on
函数。