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

我的 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>


侃侃无极
浏览 89回答 1
1回答

芜湖不芜

使用第一个静态元素(#view在您的情况下)作为您的事件委托者:$('#view').on('click',&nbsp;'td',&nbsp;function&nbsp;()&nbsp;{进一步解释一下,由于 AJAX 成功后您重建了 static 的全部内容#view,因此 TBODY$('#main tbody')是一个全新的元素,它不再委托任何初始单击事件。
打开App,查看更多内容
随时随地看视频慕课网APP