为了账号安全,请及时绑定邮箱和手机立即绑定

Ajax 重新加载 <div> 后 Onclick 功能不起作用

Ajax 重新加载 <div> 后 Onclick 功能不起作用

PHP
侃侃无极 2023-11-03 17:34:39
我的 onclick 函数只能在第一次使用。onclick 函数触发 ajax 请求后,在 success 函数内,我重新加载一个包含从 SQL 检索值的代码并使用 for 循环构建 html 表的代码。尽管它正确刷新了表(它正确地从数据库添加了新值),但当我单击表元素时,onclick 函数停止反应。但是当我刷新表格时,它再次开始工作,但仍然只有 1 次我究竟做错了什么?这是我的 onclick 函数与 Ajax 的结合:<head><script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script><script>    $(document).ready(function(){        $('#main tbody').on('click', 'td', function () {            $irow = $(this).parent().index();             $icol = $(this).index();        console.log(" row and column: ");//to debug        console.log($irow);//to debug        console.log($icol);//to debug        $.ajax({            type: "POST",            url: "check_db.php",            data: { 'srow' : $irow,               'scol' : $icol               },            success: function(data) {                  alert(data);                  console.log(data);                  $("#view").load(" #view > *")                  }                   });         });        }); </script> <style>table, th, td {  border: 1px solid black;}</style></head>
查看完整描述

1 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

使用第一个静态元素(#view在您的情况下)作为您的事件委托者:

$('#view').on('click', 'td', function () {

进一步解释一下,由于 AJAX 成功后您重建了 static 的全部内容#view,因此 TBODY$('#main tbody')是一个全新的元素,它不再委托任何初始单击事件。


查看完整回答
反对 回复 2023-11-03
  • 1 回答
  • 0 关注
  • 87 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信