将click函数添加到动态创建的html标记中

kra*_*626 5 html javascript jquery jquery-ui

所以我有一个包含许多其他div的div.这些其他div中的每一个都有一个名为record的类.我只使用这个类来选择所有这些div.

<div id = "resultContainer">
   <div class="record">result1</div>
   <div class="record">result2</div>
   <div class="record">result3</div>
   <div class="record">result4</div>
</div>
Run Code Online (Sandbox Code Playgroud)

我还添加了一个click事件=

$(".record").click(function(e) {
        do stuff here....
    });
Run Code Online (Sandbox Code Playgroud)

现在我想动态添加另一个div.

$("#resultContainer").append("<div class='record'>result5>/div>");
Run Code Online (Sandbox Code Playgroud)

但是现在单击事件没有添加到记录中.

我的想法是创建一个名为update()执行$(".record....代码的函数,并在每次添加记录时调用函数.但是原来的div不止一次做这个动作!

如何将所有div(无论何时添加)添加到do stuff here...单击之前的所有div中?

谢谢!

另外,我还有动态div上的按钮.因此,能够处理这样的事情的解决方案:$(".save").button({ icons: { primary: 'ui-icon-disk' }, text: false });将是更可取的.

use*_*716 7

.live()在这种情况下不要使用.这是jQuery .delegate()方法的完美情况,它更有效.

$("#resultContainer").delegate('.record','click',function() {
    // do stuff here...
});
Run Code Online (Sandbox Code Playgroud)

只需在resultContainer需要处理的内部点击以查看它们是否匹配.record,哪里.live()需要处理页面上的每次点击.