我有一些代码从动态构建的表中删除tr作为jQuery对象(每个tr都有一个唯一的id:trid):
tri = $("#"+trid+"");
var newrow = '<tr id="newr"><td colspan="4" align="center"><div id="nrow"> </div></td></tr>';
tri.after(newrow);
tri.detach();
然后我使用innerHTML在div'nrow'中放了一个表单...这个表单中有一个jQuery ui datepicker,这是第一次运行。
当表单被取消时,我将列表恢复原样:
setTimeout("tri.replaceAll( $('#newr') )", 400);
这一切都很漂亮,但是如果我在那之后尝试编辑那个(或任何)行,它会杀死表单中的jquery ui datepicker。我很难将其击败为replaceAll系列。如果我把它取出并通过再次构建它来替换列表它可以正常工作(它也不是超时)。
那么有没有另一种方法用jquery对象'tri'替换tr'newr'而不使用replaceAll(replaceWith也不起作用)?
编辑:
好的,这就是我从页面上其他位置移动表格的方式:
eP = $('#eP');
eP.replaceAll( $('#nrow') );
$("#editPast").show('blind','',500,'');
eP包含隐藏的div editPast ...
然后在取消功能中我把eP放回去了:
setTimeout(function() {eP.appendTo($('#ePreplace')); }, 500); (thanks adeneo!)
在我tri.replaceAll之前,虽然使用setTimeout它发生在...
之后所以我想我的问题是,eP在#nrow中使用后才会带有日期选择器状态,只是html。
固定!
将eP.appendTo
更改为$('#eP').appendTo
,以便从dom而不是原始变量中获取它。哎呀!感谢您通过just detach()
评论让我重新考虑这个问题!
答案 0 :(得分:0)
固定!
将eP.appendTo更改为$('#eP')。appendTo以便从dom而不是原始变量获取它。哎呀!感谢adeneo让我重新考虑你的'just detach()'评论!
感谢NiftyDude建议我也这样做......