将REMOVE事件侦听器绑定到JQuery中动态创建的元素的正确方法是什么

时间:2018-05-13 09:55:52

标签: javascript jquery

我的目标是每次从DOM中删除具有特定id或类的元素时执行某个操作。在此之前,我已成功使用标准语法在动态创建的元素上绑定点击事件,如下所示:

$(document).on('click', '.someClass', function(e) {
    alert("Div was clicked");
  });

this post的启发,我尝试为REMOVE事件监听器做同样的事情,但失败了。 这是我的jsFiddle

有关如何使这项工作的任何提示?也许我想要做的事情从根本上是错误的,我应该提出一些完全不同的逻辑?

http://jsfiddle.net/wphtjw1o/

1 个答案:

答案 0 :(得分:0)

这是Jquery UI脚本的功能,因此您必须包含两个脚本Jquery和Jquery UI才能使其正常工作。

$(function() {
  $('<div id="DivToBeRemoved">DIV TO BE REMOVED</div>').prependTo('body');
  $("#DivToBeRemoved").on("remove", function () {
        alert("Element was removed");
    });

  $(document).on('click', '#DivToBeRemoved', function(e) {
    alert("Div was clicked");
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.0/jquery-ui.min.js"></script>

   
<button onclick="RemoveDiv();">Click here to remove div above</button>
<script type="text/javascript">
  function RemoveDiv() {
    var d = $("#DivToBeRemoved");
    d.remove();
  }

</script>