JavaScript EventListener未将事件变量传递给事件处理程序

JavaScript EventListener未将事件变量传递给事件处理程序,javascript,event-listener,Javascript,Event Listener,我试图使用事件变量来编辑元素的CSS。我得到的错误是,事件是未定义的,即使它应该由事件侦听器传递 谢谢你的帮助 function newClick(event){ event.style.backgroundColor = '#ABAEAB'; document.addEventListener("keyup" , function(e){ let sel = window.getSelection(); let ele =

我试图使用事件变量来编辑元素的CSS。我得到的错误是,事件是未定义的,即使它应该由事件侦听器传递

谢谢你的帮助

function newClick(event){
    event.style.backgroundColor = '#ABAEAB';

    document.addEventListener("keyup" , function(e){           
        let sel = window.getSelection();
        let ele = sel.anchorNode;

        ele.textContent = e.key;
        if(ele.textContent.trim()){
            ele.focus
            setCursorToEnd(ele);    
        }
        ele.parentElement.style.backgroundColor = '#FFFFFF';   
        ele.parentElement.setAttribute("class" , "old");   
    });
}

function SetNewBranch(){
    let li_NewSpan = document.getElementsByClassName("new");

    for(let i = 0; i < li_NewSpan.length; i++){        
        if(li_NewSpan[i].getAttribute("EventListener") == 'false' && li_NewSpan[i].getAttribute("class") == "new"){          
            li_NewSpan[i].addEventListener("click" , newClick , false);            
        }
    } 
}
函数新建单击(事件){
event.style.backgroundColor='#abeab';
文件.addEventListener(“键控”,函数(e){
让sel=window.getSelection();
设ele=sel.anchorNode;
ele.textContent=e.key;
if(ele.textContent.trim()){
电子聚焦
设置光标结束(ele);
}
ele.parentElement.style.backgroundColor='#FFFFFF';
ele.parentElement.setAttribute(“类”、“旧”);
});
}
函数SetNewBranch(){
让li_NewSpan=document.getElementsByClassName(“新”);
对于(设i=0;i
您正在单击处理程序中添加
keyup
事件,该处理程序将在每次发生不正确的单击时添加新的侦听器函数! 将
keyup
事件处理程序带到它自己的函数中,并在
SetNewBranch
内调用它一次,或者在任何需要的地方调用它。见下面的例子。 另外,要获取元素,可以使用
event.target
函数attachKeyUpEvent(){
文件.addEventListener(“键控”,函数(e){
让sel=window.getSelection();
设ele=sel.anchorNode;
ele.textContent=e.key;
if(ele.textContent.trim()){
电子聚焦
//设置光标结束(ele);
}
ele.parentElement.style.backgroundColor='#FFFFFF';
ele.parentElement.setAttribute(“类”、“旧”);
});
}
函数newClick(事件){
event.target.style.backgroundColor='#abeab';
}
函数SetNewBranch(){
让li_NewSpan=document.getElementsByClassName(“新”);
对于(设i=0;i
  • 一个
  • 两个
  • 三个

元素上的点击事件
事件
是点击事件,而不是被点击的元素。谢谢你,你想要的一切都很完美!很乐意提供帮助:)唯一的问题是,当click事件运行一次时,keyup事件应该运行一次,然后在每个元素使用一次之后,eventlisteners应该被删除,类='old'