如何从 addEventListener 中删除或重置以前的值

How to delete or reset previous values from addEventListener?

本文关键字:addEventListener 删除      更新时间:2023-09-26

让我们想象日历中的一个事件,当您单击它时,会出现一个带有多个按钮的模态窗口。以下代码可以工作,但是当我单击不同的事件时,将存储先前单击的事件的值,并且使用以前的值多次调用函数FUNC_DELETE_EVENT(我只需要使用上次单击的事件调用该函数(:

爪哇语

 eventClick:  function(event) {
 document.getElementById("del_event").addEventListener("click",
     function() {
            func_delete_event(event.id); }, false); 
     },
}

模 态

<button type="button" class="btn btn-default" id="del_event" >DELETE</button>

单击时调用的 JavaScript 函数

function func_delete_event(idevent) {
    *//this is the function called several times with previous event ids*
     // Process to delete the event idevent
}

如何删除以前的点击以仅使用上次点击的事件调用函数func_delete_event

谢谢!

您将使用与addEventListener完全相同的参数的removeEventHandler

为此,请将事件处理程序设置为本地范围的函数

eventClick: function (event) {
    var element = document.getElementById("del_event");
    function handler() {
        element.removeEventListener("click", handler, false); // remove this click event handler
        func_delete_event(event.id);
    }
    element.addEventListener("click", handler, false);
},

你的函数必须有一个名称,并且必须是全局的,才能在方法 removeEventListener 中可见。一种实现方式:

var myfunction;
//---------------------------------------
 eventClick:  function(event) {
 document.getElementById("del_event").addEventListener("click",
     myfunction = function() {
            func_delete_event(event.id); }, false); 
     },
}
function func_delete_event(idevent) {
document.getElementById(idevent).removeEventListener("click", myFunction);
}
相关文章:
  • 没有找到相关文章