当用户点击一个链接时,它会运行 $.post
来检索一些数据并显示它。其中一个链接拉出一个 session 表,每个 session 旁边都有一个按钮。这是其中一个按钮的代码:
<button class="view_session btn btn-info" id="3f87d50493698d06b9b48abe36cd8fc8">Details</button>
这是我的 jQuery 函数:
$('.view_session').click(function(){
$('#blanket').show();
$('#load').show();
$.post("admin/session.php", { id: $(this).attr('id') }, function(data){
$('#sort').html(data);
$('#first').hide();
$('#load').hide();
$('#blanket').hide();
});
});
但是没有任何反应。我放入了一个 Console.log
进行测试,但没有任何触发。因为按钮是在页面最初加载后创建的,所以我必须做些什么吗?
最佳答案
如果您正在动态添加按钮,.click
将不会绑定(bind)到它,除非它已经存在。您需要在按钮添加到 DOM 后 进行绑定(bind),或者使用委托(delegate),如下所示:
$(document).on('click', '.view_session', function () {
(比 document
更具体的选择器会更好)。
除此之外,作为 $.post
函数的第三个参数仅在成功时出现。您也可以使用延迟接口(interface)方法来检查失败和完成:
$.post(...).then(success).fail(failure).done(complete);
关于php - jQuery 函数无法处理使用 Ajax 加载的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13880900/