Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对使用button OnClick从button with table调用Ajax感到困惑吗?_Javascript_Jquery_Ajax_Asp.net Mvc - Fatal编程技术网

Javascript 对使用button OnClick从button with table调用Ajax感到困惑吗?

Javascript 对使用button OnClick从button with table调用Ajax感到困惑吗?,javascript,jquery,ajax,asp.net-mvc,Javascript,Jquery,Ajax,Asp.net Mvc,我有一个MVC应用程序,我正在将记录写入一个表中。在每条记录上都有一个“删除”按钮,我想从中调用Ajax。然而,我得到了一些令人困惑的结果 最初,我将其设置为使用按钮上的CSS类来启动一些Ajax。此表通过_PartialView插入,这可能是问题的一部分。这段代码运行良好,直到我实际调用Ajax函数,该函数在删除删除的记录后重新加载表。重新加载局部视图后,onClick将不再工作 这是我的HTML,我使用按钮上的removeEmp类与Ajax一起使用 <td> <bu

我有一个MVC应用程序,我正在将记录写入一个表中。在每条记录上都有一个“删除”按钮,我想从中调用Ajax。然而,我得到了一些令人困惑的结果

最初,我将其设置为使用按钮上的CSS类来启动一些Ajax。此表通过_PartialView插入,这可能是问题的一部分。这段代码运行良好,直到我实际调用Ajax函数,该函数在删除删除的记录后重新加载表。重新加载局部视图后,onClick将不再工作

这是我的HTML,我使用按钮上的removeEmp类与Ajax一起使用

<td>
    <button id="btnDelete" class="btn btn-sm btn-danger removeEmp">
        <i class="far fa-trash-alt"></i> Delete
    </button>
    @Html.Hidden("RID",item.RID, new { @class = "rid"})
</td>
试试这个:

$(document).find('.removeEmp').on('click', function (e) {
    //...
});

这样就可以了,不需要在函数前面加括号

$(document).on('click','.removeEmp',function (e) {

    alert('clicked');
....
});

明白了,使用DOM,将click事件附加到具有“.removemp”类的任何对象。我仍然有点困惑,为什么我不能在重新加载后将其附加到带有css类的对象上,除非重新加载后它看不到css类?正确的DOM最初被加载,就是这样。如果您有动态数据(在DOM之后加载的数据),则需要
on
事件在DOM中查找新加载的数据。
单击事件将只查看上次加载的DOM
$(document).find('.removeEmp').on('click', function (e) {
    //...
});
$(document).on('click','.removeEmp',function (e) {

    alert('clicked');
....
});