让我们想象一下日历中的一个事件,当你点击它时,会出现一个带有几个按钮的模态窗口。以下代码正在运行,但是当我单击不同的事件时,将存储先前单击的事件的值,并使用这些先前的值多次调用函数FUNC_DELETE_EVENT(我需要仅使用上次单击的事件调用该函数):< / p>
的Javascript
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功能?
谢谢!
答案 0 :(得分:0)
您将removeEventHandler
与完全相同的参数一起使用addEventListener
为此,请将事件处理程序设置为本地作用域函数
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);
},
答案 1 :(得分:0)
您的函数必须具有名称且必须是全局的,才能在方法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);
}