2016-07-09 17 views
1

Ich versuche, mit CoordsChar die Position eines Klicks im Editor zu bekommen, damit ich dann getTokenAt aufrufen und erkennen kann, auf welches Wort geklickt wurde.Wie kann ich coordsChar den richtigen Ort zurückgeben?

(ich tue etwas fast identisch zu dem, was in der folgenden Frage beschrieben wurde [codemirror - detect and create links inside editor und wurde im Anschluss an die Vorschläge es in der Antwort.)

Leider egal wo ich auf, coordsChar immer Gibt den Ort des Endes des Dokuments zurück. Ich denke, das hat etwas damit zu tun, dass es immer "draußen: wahr" heißt.

Wie bekomme ich coordsChar, um den richtigen Ort zurückzugeben?

Hier ist, was ich habe ...

function onClick (e) { 
     if(e.target.className === "cm-myStyle") { 
      //get coords of mouse event 
      var x = e.windowX; 
      var y = e.windowY; 
      var coords = {x,y}; 

      var loc = editor.coordsChar(coords); 

      //this always prints the same location (at the end of the doc) 
      console.log(loc); 
    } 
+1

Sie müssen hier ein minimales Codebeispiel des Problems angeben. – Rob

+0

Danke, Rob! Fest – williamg

Antwort

1

Update - bekam sie zu arbeiten.

Neuer Code:

function onClick (e) { 
    if(e.target.className === "cm-myStyle") { 
     var x = e.pageX; 
     var y = e.pageY; 
     var coords = {left: x, top: y}; 

     var loc = editor.coordsChar(coords); 
} 

ich merkte, ich links aufzunehmen benötigt: und oben: in den coords Objekt. Außerdem wurde windowX und windowY auf pageX und pageY geändert.