1
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を入力すると、divがユーザー名の名前とともに表示され、クリックするとそれがテキストエリアに追加されます。

4

0 に答える 0