# Cursor position after mouse click

**URL:** https://discuss.codemirror.net/t/cursor-position-after-mouse-click/4289
**Category:** Uncategorized
**Created:** [April 17, 2022, 6:12pm UTC](https://discuss.codemirror.net/t/cursor-position-after-mouse-click/4289 "2022-04-17T18:12:09Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![jxxcarlson](https://discuss.codemirror.net/user_avatar/discuss.codemirror.net/jxxcarlson/32/1733_2.png) [@jxxcarlson](https://discuss.codemirror.net/u/jxxcarlson)
#### Post date: [April 17, 2022, 6:12pm UTC](https://discuss.codemirror.net/t/cursor-position-after-mouse-click/4289/1 "2022-04-17T18:12:09Z")

</div>

Hi, I am looking for a way to get the cursor position after a mouse click

The advice in [Getting cursor position after mouse click](https://discuss.codemirror.net/t/getting-cursor-position-after-mouse-click/727) from May '16 seems outdated – I couldn’t find `posFromCoords` in the docs.

---

<div class="post-metadata">

### Author: ![marijn](https://discuss.codemirror.net/user_avatar/discuss.codemirror.net/marijn/32/136_2.png) [@marijn](https://discuss.codemirror.net/u/marijn)
#### Post date: [April 18, 2022, 7:15am UTC](https://discuss.codemirror.net/t/cursor-position-after-mouse-click/4289/2 "2022-04-18T07:15:52Z")

</div>

If you’re using version 5, you want [`coordsChar`](https://codemirror.net/doc/manual.html#coordsChar).

---

<div class="post-metadata">

### Author: ![jxxcarlson](https://discuss.codemirror.net/user_avatar/discuss.codemirror.net/jxxcarlson/32/1733_2.png) [@jxxcarlson](https://discuss.codemirror.net/u/jxxcarlson)
#### Post date: [April 27, 2022, 1:53pm UTC](https://discuss.codemirror.net/t/cursor-position-after-mouse-click/4289/3 "2022-04-27T13:53:29Z")

</div>

Hi, I’m using version 6, What would be the right way to get the cursor position after mouse click for that?

---

<div class="post-metadata">

### Author: ![marijn](https://discuss.codemirror.net/user_avatar/discuss.codemirror.net/marijn/32/136_2.png) [@marijn](https://discuss.codemirror.net/u/marijn)
#### Post date: [April 28, 2022, 5:55am UTC](https://discuss.codemirror.net/t/cursor-position-after-mouse-click/4289/4 "2022-04-28T05:55:40Z")

</div>

[`posAtCoords`](https://codemirror.net/6/docs/ref/#view.EditorView.posAtCoords) is the method for that in version 6.

---

<div class="post-metadata">

### Author: ![jxxcarlson](https://discuss.codemirror.net/user_avatar/discuss.codemirror.net/jxxcarlson/32/1733_2.png) [@jxxcarlson](https://discuss.codemirror.net/u/jxxcarlson)
#### Post date: [April 28, 2022, 2:04pm UTC](https://discuss.codemirror.net/t/cursor-position-after-mouse-click/4289/5 "2022-04-28T14:04:24Z")

</div>

I’ve been able to get the screen coordinates of mouse clicks:

```auto
editorNode.onclick = (event) => { console.log('1. clicked', event.clientX, event.clientY); };

```

Am now trying to translate them into cursor position using `posAtCoords` as you suggested. But I can’t figure out how to call that function. My various tries:

```auto
function positionAtEvent(event){
   // UNDEFINED: editor.posAtCoords({x: event.clientX, y: event.clientY})
   // POSATCOORDS UNDEFINED: posAtCoords({x: event.clientX, y: event.clientY})     
   // NOT A FUNCTION: EditorView.posAtCoords({x: event.clientX, y: event.clientY})
}

```

This above code occurs in a context in which `editor` is defined:

```auto
let editor = new EditorView({
      state: EditorState.create({ ...
      ....

```

Thanks again for your help.

---

<div class="post-metadata">

### Author: ![marijn](https://discuss.codemirror.net/user_avatar/discuss.codemirror.net/marijn/32/136_2.png) [@marijn](https://discuss.codemirror.net/u/marijn)
#### Post date: [April 28, 2022, 4:15pm UTC](https://discuss.codemirror.net/t/cursor-position-after-mouse-click/4289/6 "2022-04-28T16:15:58Z")

</div>

This sounds like a confusion about basic JavaScript concepts, which is beyond the scope of this forum.

---

<div class="post-metadata">

### Author: ![jxxcarlson](https://discuss.codemirror.net/user_avatar/discuss.codemirror.net/jxxcarlson/32/1733_2.png) [@jxxcarlson](https://discuss.codemirror.net/u/jxxcarlson)
#### Post date: [April 28, 2022, 6:41pm UTC](https://discuss.codemirror.net/t/cursor-position-after-mouse-click/4289/7 "2022-04-28T18:41:38Z")

</div>

OK, thanks!

---

<div class="post-metadata">

### Author: ![jxxcarlson](https://discuss.codemirror.net/user_avatar/discuss.codemirror.net/jxxcarlson/32/1733_2.png) [@jxxcarlson](https://discuss.codemirror.net/u/jxxcarlson)
#### Post date: [April 28, 2022, 8:24pm UTC](https://discuss.codemirror.net/t/cursor-position-after-mouse-click/4289/8 "2022-04-28T20:24:41Z")

</div>

**re:** `posAtCoords`:

A more precise question. Looking through the codemirror 6 source code, I found

```auto
    export function posAtCoords ...

```

in `view/src/cursor.ts` of `codemirror.next`.

Then I modified my imports so as to have

```auto
    import {EditorView, keymap, posAtCoords} from "@codemirror/view"

```

However, when I run `npm start`, I get a “non-existent import error” regarding `posAtCoords` (see attached). Should I be importing from somewhere else?

**Attachment.**

```auto
(base) ➜ editor-prepare git:(cm6) ✗ npm start

> codemirror@1.0.0 start
> rollup -c

./editor.js → ./editor.bundle.js...
(!) Import of non-existent export
editor.js
5:
6: import {EditorState,basicSetup} from "@codemirror/basic-setup"
7: import {EditorView, keymap, posAtCoords} from "@codemirror/view"
                               ^
8: // import {search} from "@codemirror/search"
9: import {indentWithTab} from "@codemirror/commands"
created ./editor.bundle.js in 575ms

```

**NB.** In my `package.json`: ` "@codemirror/view": "^0.19.0"`. Also, I find the text

```auto
function posAtCoords(view, { x, y }, precise, bias = -1) { ..

```

in my `node_modules/@codemirror/view/dist/index.js`.

---

<div class="post-metadata">

### Author: ![marijn](https://discuss.codemirror.net/user_avatar/discuss.codemirror.net/marijn/32/136_2.png) [@marijn](https://discuss.codemirror.net/u/marijn)
#### Post date: [April 29, 2022, 12:51pm UTC](https://discuss.codemirror.net/t/cursor-position-after-mouse-click/4289/9 "2022-04-29T12:51:41Z")

</div>

This is the kind of question that the [docs](https://codemirror.net/6/docs/ref/#view.EditorView.posAtCoords) can answer for you. It’s a method on `EditorView`.

---

<div class="post-metadata">

### Author: ![jxxcarlson](https://discuss.codemirror.net/user_avatar/discuss.codemirror.net/jxxcarlson/32/1733_2.png) [@jxxcarlson](https://discuss.codemirror.net/u/jxxcarlson)
#### Post date: [April 29, 2022, 1:24pm UTC](https://discuss.codemirror.net/t/cursor-position-after-mouse-click/4289/10 "2022-04-29T13:24:18Z")

</div>

Thanks very much, and thanks for your patience. All working now!
