2016-07-09 4 views
1

Я пытаюсь использовать coordsChar, чтобы получить позицию щелчка в редакторе, чтобы затем использовать его для вызова getTokenAt и определения того, какое слово было нажато.Как я могу получить coordsChar, чтобы вернуть правильное местоположение?

(я делаю что-то почти идентичное тому, что было описано в следующем вопросе [codemirror - detect and create links inside editor и следующие предложения даны в ответ там.)

К сожалению, независимо от того, где я нажмите, coordsChar всегда возвращает местоположение конца документа. Я думаю, что это имеет какое-то отношение к тому, что он всегда говорит «снаружи: правда».

Как я могу получить coordsChar, чтобы вернуть правильное местоположение?

Вот что у меня есть ...

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

Вы должны указать минимальный код примера проблемы здесь. – Rob

+0

Спасибо, Роб! Исправлена – williamg

ответ

1

Update - получил его на работу.

Новый код:

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); 
} 

я понял, что должен включать в себя слева и сверху: в приемлю координатам. Кроме того, изменены windowX и windowY на pageX и pageY.

Смежные вопросы