检查用户光标是否在textarea中的两个标记之间

时间:2014-10-16 18:19:09

标签: javascript jquery

我正在尝试设计一个特殊的textarea,它通常包含代码块。这些代码块由两个“`”标记表示,例如:

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

我希望发生两个事件:当用户的光标位于隔离代码块之间时,当用户的光标离开隔离代码块时 / em>的

当用户输入代码块时,我想启用代码编辑,例如将制表符按钮转换为四个空格。当他们离开代码块时,我想做一个ajax调用来渲染它。

我的主要问题是试图找出用户的光标是否在这些受保护的代码块之一以及它们的光标是否留下代码块。如何以有效的方式处理这个问题?

1 个答案:

答案 0 :(得分:0)

我没有对此进行过测试,但我认为它至少可以让你获得90%。

参考: How to select all content between two tags in jQuery

定位代码块

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

如果您有多个这样的框,您可能想要废弃eq(),以便根据具体情况选择偶数/奇数/秒。

鼠标事件

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

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

不确定最佳鼠标处理方式,但我认为这不是您的主要挑战。