Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从addEventListener中删除或重置以前的值?_Javascript_Jquery_Modal Dialog - Fatal编程技术网

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

Javascript 如何从addEventListener中删除或重置以前的值?,javascript,jquery,modal-dialog,Javascript,Jquery,Modal Dialog,让我们想象一下日历中的一个事件,当您单击它时,会出现一个带有多个按钮的模式窗口。下面的代码正在工作,但当我单击不同的事件时,会存储以前单击的事件的值,并使用这些以前的值多次调用函数FUNC_DELETE_EVENT(我只需要使用上次单击的事件调用该函数): Javascript eventClick: function(event) { document.getElementById("del_event").addEventListener("click", function(

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

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>
如何删除以前的单击以仅使用上次单击的事件调用函数func\u delete\u事件


谢谢大家!

使用
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);
},

您的函数必须具有名称,并且必须是全局函数,才能在方法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);

}

谢谢你抽出时间!不幸的是,当我进入eventClickwell时,模式框没有出现,事件处理程序的这一部分根本没有改变-您的开发工具中有任何控制台错误吗?很抱歉,我忘记复制引导库,模式窗口显示正常,但当我调用func_delete_事件函数时,问题仍然在发生,它开始的次数与我在以前事件中单击的次数相同。谢谢你,谢谢你抽出时间!不幸的是,当我进入eventClickfunction时,模式框没有出现,不必是全局的。对不起,我忘记复制引导库,模式窗口显示正常,但是问题仍然存在,当我调用func_delete_事件函数时,它启动的次数与我在以前事件中单击的次数相同。删除函数声明也会发生同样的情况。非常感谢。
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);

}