0

我有一个文本字段,我正在其中写一些文本。

为了简单起见,我希望alert('Boom!')每次我开始在两个 $$ 之间写入时都会跳出。

例如,我有一个空白文本字段并开始输入(光标为“|”符号)

Today is a really nice day|

没有任何反应,开始输入

Today is a really nice day, $|$

仍然没有,但现在当我开始打字时

Today is a really nice day, $someText|$

警告框应该跳出这些美元符号之间的每个字母。

为什么我需要这种功能?每次用户开始输入他/她的方程时,我都想要实时方程预览(MathJax 渲染),并且我可以通过 $$ 符号识别它是一个方程(中间的所有内容都被渲染)。

编辑:文本字段中可能有多个 $$。脚本必须识别当前处于活动状态的那个(光标位置在 $$ 之间)。

4

1 回答 1

1

您可以使用 jQuery 插入符号插件

http://examplet.buss.hk/download/download.php?plugin=caret.1.01

注意:从第 8 行编辑和删除这些字符Ôªø

replace功能。(不是替换任何东西,而是使用匹配模式的索引)

$("#myText").bind("keyup", function(e){
     var text = $(this).val();
     var caret = $(this).caret().start;

     if(text && text.length > 0){
        text.replace(/\$.*?\$/g, function(m, n){
           if(caret > n && caret < (n + m.length)){
              alert("BOOM");
           }
        });
     }
});

演示:http: //jsfiddle.net/xqXXb/

只是展示如何做到这一点。你可以改进这一点。

采用

$("#myText").bind("keyup keydown change", function(e){ ...

以获得更好的结果。

于 2012-03-10T22:33:55.247 回答