var userNames = $('.username').map(function(index){
return $(this).text().replace(/\s/g,'');
});
userNames = $.unique(userNames).toArray();
var a = document.getElementById('text_editor_textarea');
var sc= $(a).data('sceditor');
var updateText = function() {
sc ? sc.bind('keypress',sc.updateOriginal).blur(sc.updateOriginal) : setTimeout(updateText,200);
};
updateText();
sc.bind('keypress',function(e) {
if(e.shiftKey && e.which === 64){
sc.unbind('keypress');
sc.bind('keyup',function(e) {
var string = e.which;
var stringCase = String.fromCharCode(string);
var word=[];
if(stringCase !== " " || e.which !== 32) {
word.push(stringCase);
} else if(e.which === 8){
word.pop();
} else {
return;
}
console.log(word);
});
}
});
我想要做的是当用户按下SHIFT
+2
创建 @ 符号然后开始添加到数组中时,我的代码中现在存在多个问题。当 console.logging 数组时,它会这样做
["2"]
[" "]
["M"]
["Y"]
[" "]
["W"]
["O"]//.etc
首先在我的代码中,我if(stringCase !== " " || e.which !== 32) {
基本上这样写,如果它不是空格或空白,则添加它(.push(stringCase)
),然后我检查键码是否是退格键8
以及它是否弹出数组字。否则退货。
举个简单的例子 http://jsbin.com/erebey/1/edit
基本上,我希望它在输入@USERNAME 时执行它在 SO 上所做的事情,其中 div 与用户名一起出现,一旦你点击它,它就会将它添加到 textarea 中。