Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.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 删除切换的事件侦听器方法_Javascript_Html_Dom Events_Toggle - Fatal编程技术网

Javascript 删除切换的事件侦听器方法

Javascript 删除切换的事件侦听器方法,javascript,html,dom-events,toggle,Javascript,Html,Dom Events,Toggle,我有一个简单的点击功能,当点击按钮时,用户不能滚动。这一切正常。该按钮起到切换的作用,在切换的“else”部分,即当用户再次单击时,我想删除事件侦听器,该事件侦听器使用removeEventListener()停止用户滚动方法。但是,我在此方法中调用的函数不起作用 我好像搞不懂问题出在哪里 代码笔: JS var-button=document.getElementById(“按钮”); //单击按钮时要调用和删除的函数 函数noscorl(){ 滚动到(0,0); } //切换事件侦听器 v

我有一个简单的点击功能,当点击按钮时,用户不能滚动。这一切正常。该按钮起到切换的作用,在切换的“else”部分,即当用户再次单击时,我想删除事件侦听器,该事件侦听器使用
removeEventListener()停止用户滚动方法。但是,我在此方法中调用的函数不起作用

我好像搞不懂问题出在哪里

代码笔:

JS

var-button=document.getElementById(“按钮”);
//单击按钮时要调用和删除的函数
函数noscorl(){
滚动到(0,0);
}
//切换事件侦听器
var scrollToggle=false;
函数toggleEventListener(){
如果(滚动切换===false){
addEventListener(“滚动”,函数(){
noscorl();
},假);
scrollToggle=true;
}否则{
removeEventListener(“滚动”,函数(){
noscorl();
},假);
scrollToggle=false;
}
}
addEventListener(“单击”,函数(){
toggleEventListener();
},false)
body{margin:0;padding:0;height:150vh;}
#按钮{字体系列:arial;
利润率:10px030px;
宽度:100px;
高度:50px;
背景:红色;
显示器:flex;
证明内容:中心;
对齐项目:居中;
颜色:白色;
光标:指针;
}
点击我
我不相信你能。您需要给它命名,以便它知道哪个侦听器匹配。我们可以重用您的
noscroll
函数作为我们的命名处理程序

尝试运行该代码段,您将看到它具有您预期的结果

var-button=document.getElementById(“按钮”);
//单击按钮时要调用和删除的函数
函数noscorl(){
滚动到(0,0);
}
//切换事件侦听器
var scrollToggle=false;
函数toggleEventListener(){
如果(滚动切换===false){
window.addEventListener(“滚动”,noscroll,false);
scrollToggle=true;
}否则{
window.removeEventListener(“滚动”,noscroll,false);
scrollToggle=false;
}
}
按钮。addEventListener(“单击”),函数(){
toggleEventListener();
},false)
body{margin:0;padding:0;height:150vh;}
#按钮{字体系列:arial;
利润率:10px030px;
宽度:100px;
高度:50px;
背景:红色;
显示器:flex;
证明内容:中心;
对齐项目:居中;
颜色:白色;
光标:指针;
}

点击我
这个方法怎么样

window.removeEventListener("scroll", noscroll);

这可以通过6行代码实现。您不必绑定和解除绑定事件侦听器。