Javascript:如何删除eventListener?

时间:2015-10-13 16:29:49

标签: javascript jquery

如何使用Javascript删除下面的事件监听器?

    var commentArea=$(this).parent().find('.comment_input_content')[0];

    commentEditDropbox = commentArea;
    commentEditDropbox.addEventListener("dragenter", dragenter, false);
    commentEditDropbox.addEventListener("dragover", dragover, false);
    commentEditDropbox.addEventListener("drop", drop, false);
    function dragenter(e) {
      e.stopPropagation();
      e.preventDefault();
      // $("#topic_content_input").css("cursor:copy");        
    }
    function dragover(e) {
      e.stopPropagation();
      e.preventDefault();
      // $("#topic_content_input").css("cursor:copy");
    }
    function drop(e) {
      e.stopPropagation();
      e.preventDefault();
      // $("#topic_content_input").css("cursor:copy");
      var dt = e.dataTransfer;
      var files = dt.files;
      var attr = $(this).attr('contenteditable');
      // if contenteditable is true
      if(attr){
      commentEditHandleFileSelect(files);
      alert("drop");
        }
    }

我简单地通过将addEventListener替换为removeEventlistener来解决下面的代码,但是没有工作:(

var commentArea=$(this).parent().find('.comment_input_content')[0];

commentEditDropbox = commentArea;
commentEditDropbox.removeEventListener("dragenter", dragenter, false);
commentEditDropbox.removeEventListener("dragover", dragover, false);
commentEditDropbox.removeEventListener("drop", drop, false);

1 个答案:

答案 0 :(得分:0)

您正在使用JQuery选择所需的元素,因此您将获得一个jQuery选择器对象。

我建议将addEventListener更改为on,并将removeEventListener更改为off。

commentEditDropbox.on("dragenter", dragenter);
commentEditDropbox.on("dragover", dragover);
commentEditDropbox.on("drop", drop);

commentEditDropbox.off("dragenter", dragenter);
commentEditDropbox.off("dragover", dragover);
commentEditDropbox.off("drop", drop);