我有一个文本字段,我正在其中写入一些文本。
为了简单起见,我希望每次在两个$$之间开始写作时,alert('Boom!')
都会跳出来。
例如,我有一个空白的文本字段,并开始键入(光标是"|"符号)
Today is a really nice day|
什么都没发生,开始键入
Today is a really nice day, $|$
仍然没有,但现在当我开始键入时
Today is a really nice day, $someText|$
在这些美元符号之间的每一个字母都应该跳出一个警告框。
为什么我需要这种功能?每次用户开始键入他/她的方程时,我都想要实时方程预览(MathJax渲染),我可以通过$$符号识别出这是一个方程(其间的所有内容都被渲染)。
编辑:文本字段中可以有多个$$。脚本必须识别当前活动的(光标位置在$$之间)。
您可以使用jQuery插入符号插件
http://examplet.buss.hk/download/download.php?plugin=caret.1.01
注意:编辑并删除第8行的这些字符
和CCD_ 2函数。(不是替换任何东西,而是使用匹配图案的索引)
$("#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){ ...
以获得更好的结果。