jquery插入的元素类未加载

时间:2012-10-02 00:43:37

标签: jquery class

我正在从表中删除行,然后在用户对表单进行一些编辑后重新插入它们; 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但它与父子控件有关。在这种情况下是否必须使用?

你能帮忙吗?

非常感谢!

2 个答案:

答案 0 :(得分:0)

您的点击绑定仅适用于您创建DOM时元素中的元素,而不适用于稍后添加的元素。要处理动态添加的元素,您需要委托:

$(".records").on("click", ".view_dialog", function() {
    alert('class clicked');
});

答案 1 :(得分:-1)

您是否已将代码包含在DOM Ready事件

$(function() {

   // You code 
   $("[id^=Edit]").addClass('view_dialog'); 

});

同样在什么时候添加类..它是在创建元素之前或创建它们之后..

如果你在创建元素之前分配它,恐怕在新添加的元素的情况下这将无济于事。

您需要在每个新创建的元素上显式添加类。