Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.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 单击按钮后如何删除eventListener?_Javascript_Electron_Event Listener - Fatal编程技术网

Javascript 单击按钮后如何删除eventListener?

Javascript 单击按钮后如何删除eventListener?,javascript,electron,event-listener,Javascript,Electron,Event Listener,我有一个内容可编辑的div,如下所示: 我有两个按钮: 这两个按钮调用相同的javascript函数,因此每次单击其中一个按钮时都会重复此函数。例如: 当我单击按钮1时,脚本会向编辑器添加一个Eventlistener。我使用它来保存某些击键时编辑器的内容 当我单击按钮2时,需要删除eventlistener并添加一个新的。我该怎么做 我已经试过了: function javascript() { // remove the eventlistener editable.removeE

我有一个内容可编辑的div,如下所示:

我有两个按钮:

这两个按钮调用相同的javascript函数,因此每次单击其中一个按钮时都会重复此函数。例如:

当我单击按钮1时,脚本会向编辑器添加一个Eventlistener。我使用它来保存某些击键时编辑器的内容

当我单击按钮2时,需要删除eventlistener并添加一个新的。我该怎么做

我已经试过了:

function javascript() {

// remove the eventlistener 
editable.removeEventListener('keydown', keydownsave, true);

var editable = document.getElementById('editor');
editable.addEventListener('keydown', keydownsave, true);

keydownsave = function(e) {

    // execute only if certain keys are pressed. 
    var toets = e.keyCode;
    var ctrls = e.ctrlKey;
    if (toets == 32 || toets == 13 || ctrls == true && toets == 83)

但这不起作用

您可以使用
unbind
来执行此操作

$('#t')。单击(函数(){
警报('单击')
})
$('#t')。on('mouseover',function(){
$(this.html('鼠标悬停')
})
$('#t')。on('mouseout',function(){
$(this.html('带有事件侦听器的按钮')
})
函数removeEventListeners(){
$('#t').unbind()
$('span').html('此按钮没有事件')
}

带有事件侦听器的按钮
此按钮具有单击、鼠标悬停和鼠标移出事件


删除事件监听器
我实际上是动态创建了一组div按钮:

品牌中的bos

每个按钮都有不同的数据,单击
onclick
按钮可启动功能
open\u editor

这样,每次单击其中一个按钮时,都会调用该函数的新实例。但是这些函数从不关闭,这意味着它们一直在后台运行,打破了我保存东西的方式


我实际需要的是在再次调用同一个函数之前,用它的eventListener结束前一个函数。这在JavaScript中是可能的吗?

可能的重复从UI/UX的角度看,隐藏按钮或至少禁用按钮,直到再次需要它,而不是删除它的侦听器,使其变得无用,这难道不是更有意义吗?谢谢你的回答!我实际上需要这些按钮是可点击的。它们使内容在可编辑的目录中可见:)谢谢你的解释!对此我非常感激,但在今天编写了一点代码之后,我认为我的问题与此解决方案所能解决的有点不同。我将试着在下面解释:)你想在点击按钮时打开一个模式还是什么?我发现了错误。。。每次运行脚本时,它都不会删除
editable
中以前的数据。这在我的程序中造成了混乱:)