1

举个粗略的例子,我有一张桌子

<table>
<tr>
    <td>wangel</td>
    <td>tamang</td>
    <td><a class="edit">edit</a></td>
</tr>
</table>

当我单击编辑时,我使用一个使用 j 查询的函数,使用 Ajax 然后调用该函数,使用 PHP 编辑查询,然后我返回现在已编辑的新行

<tr>
   < td >wangelpakhrin    </ td>
   <td>tamang</td>
   <td><a class="edit">edit</td>
</tr>

然后,使用 replace With() 替换为旧版本。现在,问题是新的编辑不会触发我之前在脚本中创建的函数,否则它会刷新页面。我确实使用了 live() 或 on() 但它仍然刷新了页面。有什么解决办法呢?这将非常有帮助,谢谢。

脚本代码

$("a.edit").on("click",function(e) {
        e.preventDefault();
        var id = $(this).attr("value");
        var parent = $(this).parent();
        $.post("../lib/ajax/edit-user.php",{id:id},function(data){

            parent.parent().replaceWith(data);


            });


});
4

2 回答 2

3

我假设您的表格是固定的,并且您在表格中添加了一个 tr。然后为您的表格标签创建一个类,例如

<table class="my_table">
<tr>
    <td>wangel</td>
    <td>tamang</td>
    <td><a class="edit">edit</a></td>
</tr>
</table>

现在你的 .on 功能就像

$(".my_table").on('click',".edit",function(){

    //your work
});

请让我知道状态。

于 2013-07-18T09:23:04.123 回答
0

你可以只更新你的内容而不是像这样替换:

$("a.edit").on("click",function(e) {

var id = $(this).attr("value");
var parent = $(this).parent();
$.post("../lib/ajax/edit-user.php",{id:id},function(data){

    parent.parent().empty().html(data);


    });
 });

您的数据必须以 s 的形式返回。

data=" <td>wangel New</td><td>tamang new</td><td><a class="edit">edit</a></td>"
于 2013-07-18T09:34:47.357 回答