如何从 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);
}
相关文章:
- 没有找到相关文章