Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery使用.on/.off重新绑定事件_Jquery_Events - Fatal编程技术网

jquery使用.on/.off重新绑定事件

jquery使用.on/.off重新绑定事件,jquery,events,Jquery,Events,我目前正在对DOM的各个部分进行排序,方法是将它们放入一个数组中,运行sort,然后将它们追加到DOM中——这很好 我遇到的问题是重新绑定所需的单击事件。这是DOM的精简版本: <div id="allmembers"> <div id="member1"> <img class="openmessage"/> <img class="deletemessage"/> <img class="pinmessage

我目前正在对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>
但是,此.on仅在第一次排序/追加之前起作用。在它不再开火之后

如何为这样移动(非静态)的元素设置单击事件?

尝试事件委派

将事件附加到父节点,并允许在bubling up时捕获来自特定子节点的事件

语法如下:

$('#allmembers').on('click', '.openmessage', function(e) {
   alert('open message');
});

此处的更多信息:

进行排序的代码在哪里?在选择器的末尾有一个未关闭的引号。
$('#allmembers.openmessage)
是打字错误吗?它缺少一个引用?是的,我只是徒手输入,没有测试-只是一个代码示例。。。下面的答案是完美的。。。谢谢
$('#allmembers').on('click', '.openmessage', function(e) {
   alert('open message');
});