Wie entferne ich einen Ereignishörer, wenn die Funktion für ihn in einer anderen Funktion verschachtelt ist?JavaScript

Javascript-Forum
Anonymous
 Wie entferne ich einen Ereignishörer, wenn die Funktion für ihn in einer anderen Funktion verschachtelt ist?

Post by Anonymous »

Dies ist eine knifflige Situation. Ich versuche, einen SVG-Container zu erstellen, der Maus-Drag-Bewegungen verfolgt. Wenn die Maus abgehalten wird, startet sie einen Prozess, bei dem ein weiterer Mousemove -Hörer angehängt wird, der die Bewegungen der Maus verfolgt. Ich kann also nicht aus dem Block zugreifen, der den Mauseup -Hörer hat. < /P>
Wie kann man dieses Problem umgehen?

Code: Select all

var svgCont = document.querySelector(".svgCont");

svgCont.addEventListener("mousedown", (e)=>{
//e: init mouse pos
startListeningForDrag([e.x, e.y]);
});

function startListeningForDrag(initMP){

console.log("InitMP: " + initMP);

svgCont.addEventListener("mousemove", function trackMouse(){
console.log("tracking");

});

svgCont.addEventListener("mouseup", function(){
svgCont.removeEventListener("mousemove", trackMouse )
});

}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post