我正在从表中删除行,然后在用户对表单进行一些编辑后重新插入它们; poblem是
class="view_dialog"
未插入行的“加载”。
原始行具有以下布局:
<tr>
<td>new one</td>
<td>B2B NFIB</td>
<td class="actions" id="actions">
<a href="/dirs/edit/252" class="view_dialog">Edit</a>
</td>
</tr>
一旦用户改变了一些东西,我删除所有行(通常只有4个中的3个)并使用jquery填充表(.records):
$('.records tbody tr:last').after('<tr><td>'+data.dirArray[$count].Dir.name+'</td><td>'+data.dirArray[$count].Dir.dir_description+'</td><td class="actions" id="actions"><a href="/dirs/edit/'+data.dirArray[$count].Dir.id+'" class="view_dialog" id="Edit'+data.dirArray[$count].Dir.id+'">Edit</a></td></tr>');
行创建得很好,生成的行代码与原始代码相同(添加id试图使用.addClass没有运气)
<tr>
<td>new one</td>
<td>B2B NFIB</td>
<td class="actions" id="actions">
<a href="/dirs/edit/252" class="view_dialog" id="Edit252">Edit</a>
</td>
</tr>
为什么班级没有“加载”。我正在使用该类触发一些事件。
尝试
$("[id^=Edit]").addClass('view_dialog');
没有结果。
检查.live但它与父子控件有关。在这种情况下是否必须使用?
你能帮忙吗?
非常感谢!
答案 0 :(得分:0)
您的点击绑定仅适用于您创建DOM时元素中的元素,而不适用于稍后添加的元素。要处理动态添加的元素,您需要委托:
$(".records").on("click", ".view_dialog", function() {
alert('class clicked');
});
答案 1 :(得分:-1)
您是否已将代码包含在DOM Ready事件
中$(function() {
// You code
$("[id^=Edit]").addClass('view_dialog');
});
同样在什么时候添加类..它是在创建元素之前或创建它们之后..
如果你在创建元素之前分配它,恐怕在新添加的元素的情况下这将无济于事。
您需要在每个新创建的元素上显式添加类。