Javascript 使用标记用户@

Javascript 使用标记用户@,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我目前正在构建一个@user标记系统。我有一件小事几乎让它工作起来了,我的脑子都转不过来了。我知道问题是什么,只是想不出我该怎么纠正它 所以我把@符号放在div框中,输入一个名称,选择它,然后将其插入到内容区域 <div cols="40" rows="5" name="newmsg" id="newmsg" placeholder="Say something <? echo $data['first']; ?>..." contenteditable="true">&

我目前正在构建一个@user标记系统。我有一件小事几乎让它工作起来了,我的脑子都转不过来了。我知道问题是什么,只是想不出我该怎么纠正它

所以我把@符号放在div框中,输入一个名称,选择它,然后将其插入到内容区域

<div cols="40" rows="5" name="newmsg" id="newmsg" placeholder="Say something <? echo $data['first']; ?>..." contenteditable="true"></div>

1.如果div已经选择并输入了.addname,如何停止显示该div的msgbox

尝试查找一个,如果不存在,则显示该框

$("#newmsg").on("keyup", function () {
    if( $(this).find('.addname').length == 0 ) { ... }
}

2.如何更改代码,使其不在每次按键后进行搜索

例如,您可以在发送ajax时解除keyup事件的绑定,并在ajax每n个字符返回结果或捕获事件时重新绑定


我真的不知道facebook是怎么做到的。我所知道的是,他们使用一个文本区域,一旦你插入了一个名字,你就可以直接在被标记的人之后键入

Facebook使用这种方法。您还可以创建contenteditable div(-write sth并按空格键)


但是在插入了名称并且我想键入之后,它不会键入(…)


您知道如何设置插入符号位置。

您使用的是较旧的jQuery版本吗<代码>实时版
在现代版中会贬值。是。我是。现在我相信它是
livequery
。非常感谢@r4xz。这是一个很好的帮助,信息量也很大。加1
$("#newmsg").on("keyup", function () {
    if( $(this).find('.addname').length == 0 ) { ... }
}