使用jQuery编辑添加到表的行

时间:2011-06-22 17:30:21

标签: jquery html-table row edit

我发现这篇文章:Editing and deleting a newly added table row using Jquery,这似乎正是我所寻找的,但我无法得到他们建议的解决方案。

在进行ajax调用后,我向表中添加了一个新行。该行看起来类似于:

<tr class="classRow" bgcolor="#EFE5D3" style="font-weight: bold; font-size: 1.1em;">
    <td width="35px"><a class="classEditLink classAdminFormSubmit" name="33" href="#">Edit</a></td>
    <td width="20px"><input type="checkbox" class="chkDeleteClass" name="deleteClasses[]" value="33" /></td>
    <td>CLASS101</td>
    <td>Class Description</td>
</tr>

编辑链接在页面刷新之后才会起作用(我假设它有一些东西可以归结为它在添加到表之后不立即在DOM中)。所以,我需要找到一个解决方法,引导我进入上述帖子。

我从那里修改了代码,如下所示:

$('a').live('click', function(e){
    if ($(e.target).attr('class') == 'classAdminFormSubmit') {
        alert($(e.target).name());

        OpenEditDialog($(this));
        return false;
    }
});

警报永远不会触发,所以我希望这只是我的选择器需要调整。我需要将选定的锚标记传递给OpenEditDialog函数。

2 个答案:

答案 0 :(得分:1)

$( 'a' ).live( 'click', function () {

    var $this = $( this );

    if ( $this.hasClass( 'classAdminFormSubmit' ) ) {

        alert( $this.attr( 'name' ) );

        OpenEditDialog( $this );

        return false;

    }

});

答案 1 :(得分:0)

首先,在刚刚添加的行中添加一个链接,并给它一个类,让我们说它是editRow。 其次,使用此代码:

$('a.editRow').live('click', function(e){

    alert($(e.target).name());

    OpenEditDialog($(this));
    e.preventDefault(); // this is better than return false;
});