Javascript 删除事件侦听器,箭头函数

Javascript 删除事件侦听器,箭头函数,javascript,Javascript,我想问你,如何删除带有arrwo函数的事件侦听器?我在这里尝试了一些方法,但没有奏效 有解决办法吗 add.AddEventListener单击,=>{ 设b=document.createElementinput; b、 setAttributeid,dif; b、 类型=数量; b、 占位符=写第三个数字; 计算附录B; } add.RemoveEventListener单击 如果要使用removeEventListener,则在添加时需要使用命名函数 function listener

我想问你,如何删除带有arrwo函数的事件侦听器?我在这里尝试了一些方法,但没有奏效 有解决办法吗

add.AddEventListener单击,=>{ 设b=document.createElementinput; b、 setAttributeid,dif; b、 类型=数量; b、 占位符=写第三个数字; 计算附录B; } add.RemoveEventListener单击 如果要使用removeEventListener,则在添加时需要使用命名函数

function listener () {
  let b = document.createElement("input");
  b.setAttribute("id" , "dif");
  b.type = "number";
  b.placeholder = "Write Third Number";
  calc.append(b);
}
add.addEventListener("click", listener);
...
add.removeEventListener("click", listener);
如果要使用removeEventListener,则在添加时需要使用命名函数

function listener () {
  let b = document.createElement("input");
  b.setAttribute("id" , "dif");
  b.type = "number";
  b.placeholder = "Write Third Number";
  calc.append(b);
}
add.addEventListener("click", listener);
...
add.removeEventListener("click", listener);

为了删除,您需要引用为add提供的回调,因此您需要在外部声明函数并将其提供给add事件侦听器,然后删除它:

let myClick = ()=> {
  let b = document.createElement("input");
  b.setAttribute("id" , "dif");
  b.type = "number";
  b.placeholder = "Write Third Number";
  calc.append(b); 
};

add.addEventListener("click" , myClick ):

add.removeEventListener("click", myClick );

为了删除,您需要引用为add提供的回调,因此您需要在外部声明函数并将其提供给add事件侦听器,然后删除它:

let myClick = ()=> {
  let b = document.createElement("input");
  b.setAttribute("id" , "dif");
  b.type = "number";
  b.placeholder = "Write Third Number";
  calc.append(b); 
};

add.addEventListener("click" , myClick ):

add.removeEventListener("click", myClick );

它不起作用的原因是removeEventListener要求您将事件类型(如click)和要删除的事件侦听器函数作为参数传递给arrow函数

必须同时提供这两个函数的原因是,可以为同一事件的同一事件附加多个事件侦听器

要使其发挥作用,您有两种解决方案:

将箭头函数提取到命名函数。例如: 将箭头函数指定给变量。例如:
有关详细信息,请查看它不起作用的原因是removeEventListener要求您将事件类型(例如单击)和要删除的事件侦听器函数作为参数传递给arrow函数

必须同时提供这两个函数的原因是,可以为同一事件的同一事件附加多个事件侦听器

要使其发挥作用,您有两种解决方案:

将箭头函数提取到命名函数。例如: 将箭头函数指定给变量。例如:
有关详细信息,请查看removeEventListener需要对要删除的函数的引用。您必须保留该箭头函数的引用,例如,将其放入变量或对象中,然后在删除过程中使用该引用。removeEventListener需要删除该函数的引用。您必须保留该箭头函数的引用,例如,将其放在变量或对象中,然后在删除过程中使用该引用。解决方案不错,但现在无法从按钮、、、创建输入,我想创建一个输入,不再创建任何其他输入此操作会在每次单击时创建输入。。如果只想在单击之外创建一个按钮,请说出创建按钮的位置并将其附加到calc。然后使用document.getElementByIddif在文档中查找它。。如果您这样做,您可以在myClick函数中设置属性、类型和占位符尼斯解决方案,但现在无法通过按钮、、、创建输入,我想创建一个输入,而不再创建任何其他输入这将在每次单击时创建一个输入。。如果只想在单击之外创建一个按钮,请说出创建按钮的位置并将其附加到calc。然后使用document.getElementByIddif在文档中查找它。。如果这样做,则可以在myClick函数中设置属性、类型和占位符