如何使用removeEventListener删除事件?

时间:2016-09-09 05:51:31

标签: javascript

HTML

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

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);
} 

我希望我的按钮上的功能如果用户第一次点击警告框显示“这是添加功能”但第二次点击比警报bix显示“这是删除功能”&amp;第三次再次显示“这是一个添加功能”,这将继续。

2 个答案:

答案 0 :(得分:0)

保留计数器而不是添加和删除事件侦听器。

&#13;
&#13;
ScriptApp.newTrigger("startAcceptingResponses")
   .timeBased()
   .onWeekDay(ScriptApp.WeekDay.FRIDAY)
   .atHour(9)
   .nearMinute(25)
   .everyWeeks(1) // The frequency
   .create();
&#13;
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");
  }
 
} 
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您无需删除eventlistener,只需更改警报文本 - 在两个警报中,您需要点击事件监听器。

你可以保留旗帜或其他东西

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);
} 

如果你想练习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);

}