简体   繁体   English

如何使用removeEventListener删除事件?

[英]How do i use removeEventListener to remove event?

HTML 的HTML

<button id="btn" value="250">Click Me</button>

JS JS

document.getElementById('btn').addEventListener('click',say,false);

function say() {
 alert("this is add function !!!");
 this.removeEventListener('click',function () {
  alert("this is remove function");
  },false);
} 

I want that functionality on my button that if user click first time than alert box show "this is add function" but second time click than alert bix show "this is remove function" & third time again show "this is a add function" , this will continue. 我希望按钮上的功能是:如果用户第一次单击而不是警报框显示“这是添加功能”,但是第二次单击而不是警报bix显示“这是删除功能”,第三次再次单击“这是添加功能”,这将继续。

Keep a counter isntead of adding and removing event listeners. 保持对添加和删除事件侦听器的反感。

 document.getElementById('btn').addEventListener('click',say,false); var ctr = 0; function say() { if(ctr%2 == 0) { ctr = 1; alert("this is add function !!!"); } else { ctr= 0; alert("this is remove function"); } } 
 <button id="btn" value="250">Click Me</button> 

You dont need to remove the eventlistener, just to change the text of the alert - in both alarms you need an event listener on the click. 您无需删除事件侦听器,仅需更改警报的文本-在两个警报中,单击时都需要一个事件侦听器。

you can keep a flag or something 你可以保留一个标志或其他东西

document.getElementById('btn').addEventListener('click',say,false);
var showAddText = true;
function say() {
    var alertText = showAddText ? 'this is add function' : 'this is remove function'
    showAddText = !showAddText;
    alert(alertText);
} 

if you want to practice removeEventListener - 如果您想练习removeEventListener-

document.getElementById('btn').addEventListener('click',say,false);
function say() {
    alert('this is add function');
    document.getElementById('btn').removeEventListener('click',say,false);
    document.getElementById('btn').addEventListener('click',say2,false);
} 
function say2(){
    alert('this is remove function');
    document.getElementById('btn').removeEventListener('click',say2,false);
    document.getElementById('btn').addEventListener('click',say,false);

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM