检查用户光标是否位于文本区域中的两个标记之间

check if user cursor between two tokens in textarea

本文关键字:两个 之间 区域 于文本 是否 用户 检查 文本 光标      更新时间:2023-09-26

我正在尝试设计一个特殊的文本区域,该区域通常有代码块。这些代码块由两个"标记表示,例如:

```
if __name__ == '__main__':
  name = raw_input("what's your name? ")
  print("Hello, {}!".format(name))
```

我希望发生两个事件:当用户的光标位于围栏代码块之间时,以及用户的光标离开围栏代码块时。

当用户输入代码块时,我希望启用代码编辑,比如将选项卡按钮转换为四个空格。当他们离开代码块时,我想调用ajax来渲染它

我的主要问题是试图找出用户的光标是否在这些围栏代码块中,以及他们的光标何时离开代码块。如何有效地处理这一问题?

我还没有测试过,但我认为它至少能让你达到90%。

参考:如何在jQuery 中选择两个标签之间的所有内容

以代码块为目标:

$("*:contains('```')").eq(0)
                      .nextUntil("*:contains('```')")
                      .andSelf()
                      .wrap("<div id='mouse-box'></div>");

如果你有多个这样的框,你可能想废弃eq(),让你根据情况选择偶数/奇数/nth。

鼠标事件

$("#mouse-box").mouseenter(function(){
    // do something
});
$("#mouse-box").mouseleave(function(){
    // do something else
});

不确定最好的鼠标操作,但我不认为这是你的主要挑战。