Javascript 为什么这种添加eventlisteners的“递归”方式不起作用?

Javascript 为什么这种添加eventlisteners的“递归”方式不起作用?,javascript,Javascript,我原以为这会很好地解决问题,但不知何故,它并没有: const menu=document.querySelector.menu'; const menuBtn=document.querySelector'menu_btn'; 让transitionIn=e=>{ menu.classList.addtransitionIn; menuBtn.addEventListener'click',transitionOut; } 让transitionOut=e=>{ menu.classList.

我原以为这会很好地解决问题,但不知何故,它并没有:

const menu=document.querySelector.menu'; const menuBtn=document.querySelector'menu_btn'; 让transitionIn=e=>{ menu.classList.addtransitionIn; menuBtn.addEventListener'click',transitionOut; } 让transitionOut=e=>{ menu.classList.removetransionin; menuBtn.addEventListener'click',transitionIn; } menuBtn.addEventListener“单击”,转换为
我的代码可能有什么问题?

我忘了添加removeEventListener

我想我理解这个问题,如果我理解正确的话,你真的让自己的生活复杂化了

假设您尝试在单击时在两个类之间切换,您可以编写类似于我添加的代码段的内容,而不需要连续创建多个事件侦听器

const foo=document.querySelectorfoo; foo.addEventListenerclick,=>{ 如果foo.classList.containstration-in{ foo.classList.removetransition-in foo.classList.addtransition-out }否则{ foo.classList.addtransition-in foo.classList.removetransition-out } } .过渡{ 背景色:红色; } .转出{ 背景颜色:蓝色; } 福{ 宽度:100px; 高度:100px; 过渡:背景色1s; 边框:1px实心; }
添加事件侦听器不会删除以前添加的事件侦听器。请参阅removeEventListener!事件监听器一起被调用。你是否尝试在添加-删除类之间切换?哦,所以我必须删除它才能工作?