2010-05-30 59 views
0

我正在尝试创建一个像Facebook状态更新一样具有可信度的div。那么我的意思是我想在用户写@时显示一个自动填充框。创建一个类似于Facebook状态更新的自动完成器

你会怎么做。目前,我只是在使用按键进行操作,并检查keycode是否为64.不管怎样,这种方法都有效,但它不验证在alfa之前是否存在空格,或者用户是否将焦点未聚焦,然后重新聚焦。

任何想法?或者你知道任何类似这样的插件吗?

Tnx

回答

0

我也许会用按键来做。

但我们需要检查光标位置以检查'@'之前的字符。

这里是我从http://javascript.nwbox.com/cursor_position/cursor.js

function getSelectionStart(o) { 
    if (o.createTextRange) { 
    var r = document.selection.createRange().duplicate(); 
    r.moveEnd('character', o.value.length); 
    if (r.text == '') return o.value.length 
     return o.value.lastIndexOf(r.text); 
    } else { 
     return o.selectionStart; 
    } 
} 

使用的功能,然后使用jQuery我写这个按键回调函数:

txt.keypress(function(event) { 
    if (event.which == 64) { 
     var index = getSelectionStart(this) 
     var prevChar = txt.val().substring(index - 1, index); 
     // now you can check if the previous char was a space 
    } 
}); 
+0

谢谢,在执法机关的地方开始:) – ThoKra 2010-06-03 19:56:34