0

我正在从表中删除行,然后在用户对表单进行一些编辑后重新插入它们;问题是

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 但它与父子控件有关。在这种情况下是否必须使用?

你能帮我吗?

非常感谢 !

4

2 回答 2

0

您的点击绑定仅适用于您创建它们时 DOM 中的元素,而不适用于稍后添加的元素。要处理动态添加的元素,您需要使用以下命令进行委托:

$(".records").on("click", ".view_dialog", function() {
    alert('class clicked');
});
于 2012-10-02T02:06:47.370 回答
-1

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

$(function() {

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

});

另外你什么时候添加类..它是在创建元素之前或之后..

如果您在创建元素之前分配它,恐怕这对新添加的元素没有帮助..

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

于 2012-10-02T00:47:32.620 回答