Javascript 在addEventListener中闭包是如何工作的?
我得到了这个密码: 函数getElementByName(名称){ 返回文档。查询选择器(名称); } 功能移除按钮(parentToClick){ parentToClick.addEventListener('click',e=>{ 让buttonToClick=e.target; const removeButton=getElementByName(`.remove`); removeButton.addEventListener('click',e=>{ console.log(如target); 移除(按钮点击); }); }); } 功能删除(按钮单击){ 返回按钮单击。删除(); } 移除按钮(getElementByName(`menu`))代码>Javascript 在addEventListener中闭包是如何工作的?,javascript,Javascript,我得到了这个密码: 函数getElementByName(名称){ 返回文档。查询选择器(名称); } 功能移除按钮(parentToClick){ parentToClick.addEventListener('click',e=>{ 让buttonToClick=e.target; const removeButton=getElementByName(`.remove`); removeButton.addEventListener('click',e=>{ console.log(如t
拯救
负载
搜寻
删除
,然后会发生什么情况:
功能移除按钮(parentToClick){
让buttonToClick=null;
parentToClick.addEventListener('click',e=>{
buttonToClick=e.target.closest('按钮[数据操作]);
});
const removeButton=document.querySelector('.remove');
removeButton.addEventListener('click',e=>{
如果(按钮点击)删除(按钮点击);
buttonToClick=null;
});
}
功能删除(按钮单击){
返回按钮单击。删除();
}
移除按钮(document.querySelector(“#菜单”)代码>
拯救
负载
搜寻
删除
您是否意识到正在将多个事件绑定到删除按钮。因此,每次单击,您都会绑定一个新的事件侦听器,它们不会替换旧的事件侦听器。。。您已经准确地解释了代码中发生了什么,闭包是如何工作的,问题是什么..?好的,我是否必须移出菜单一的remove listener?是的,并将以前单击的菜单按钮存储到变量中。然后检查存储的元素是否存在,如果存在,请将其删除。