我目前正在对DOM的各个部分进行排序,将它们放入一个数组中,运行sort然后将它们追加到DOM中 - 这很好。
我遇到的问题是重新绑定所需的点击事件。这是DOM的简化版本:
<div id="allmembers">
<div id="member1">
<img class="openmessage"/>
<img class="deletemessage"/>
<img class="pinmessage"/>
</div>
<div id="member2">
<img class="openmessage"/>
<img class="deletemessage"/>
<img class="pinmessage"/>
</div>
</div>
排序/追加发生在id = member1 / member2级别,因此id =“allmembers”不会移动/更改。
对于open / delete / pin类元素,我确实有这样的点击事件,如:
$('#allmembers .openmessage).on('click', function(e) {
alert('open message');
});
但是这个.on仅在第一次排序/附加之前有效。在它不再发射之后。
如何为移动(不是静态)的元素设置点击事件?
答案 0 :(得分:2)
尝试事件委派。
将事件附加到父节点,并在启动时捕获来自特定子节点的事件。
继承语法:
$('#allmembers').on('click', '.openmessage', function(e) {
alert('open message');
});
此处有更多信息:http://api.jquery.com/on/