我发现这篇文章: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函数。
答案 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;
});