2011-07-25 18 views
0
私はこのチュートリアルから少し増大し、仮想キーボードを使用してい

オンラインキーボードは、テキストが入力されたときに無効に

http://net.tutsplus.com/tutorials/javascript-ajax/creating-a-keyboard-with-css-and-jquery/

のjQuery:

$(function(){ 
var $write2 = $('#write2'), 
    shift = false, 
    capslock = false; 

$('#keyboard li').click(function(){ 
    var $this = $(this), 
     character = $this.html(); // If it's a lowercase letter, nothing happens to this variable 

    // Shift keys 
    if ($this.hasClass('left-shift') || $this.hasClass('right-shift')) { 
     $('.letter').toggleClass('uppercase'); 
     $('.symbol span').toggle(); 

     shift = (shift === true) ? false : true; 
     capslock = false; 
     return false; 
    } 

    // Caps lock 
    if ($this.hasClass('capslock')) { 
     $('.letter').toggleClass('uppercase'); 
     capslock = true; 
     return false; 
    } 

    // Delete 
    if ($this.hasClass('delete')) { 
     var html = $write2.html(); 

     $write2.html(html.substr(0, html.length - 1000)); 
     return false; 
    } 

    // Special characters 
    if ($this.hasClass('symbol')) character = $('span:visible', $this).html(); 
    if ($this.hasClass('space')) character = $('span:visible', $this).html(); 
    if ($this.hasClass('tab')) character = $('span:visible', $this).html(); 
    if ($this.hasClass('return')) character = "\n"; 

    // Uppercase letter 
    if ($this.hasClass('uppercase')) character = character.toUpperCase(); 

    // Remove shift once a key is clicked. 
    if (shift === true) { 
     $('.symbol span').toggle(); 
     if (capslock === false) $('.letter').toggleClass('uppercase'); 

     shift = false; 
    } 

    // Add the character 
    $write2.html(character+ " " + $write2.html()); 
    }); }); 

問題があり、I手動で変更テキストエリア、キーボードが無効になります。私は本当に理由とチュートリアルでそのバグを本当に説明していないのか分かりません。

ありがとうございました。

+0

のヴァルを使用してみてください – Tomm

+0

何かがテキストエリアに入力されると、オンラインキーボードが無効になります。したがって、btwnをテキストエリアにスムーズに入力してオンラインキーボードをクリックすることはできません。 – Liban

答えて

1

あなたが「手動テキストエリアを変更する」とはどういう意味ですか?代わりにHTML

$write.val($write.val() + character) 
+0

私はそれを試した、私はそれが動作するとは思わない... – Liban

+0

それは今動作する!ちょうど私が使用していたjqueryの私のバージョンを更新しなければならなかった!どうもありがとう!!! – Liban

+0

優れている、喜んで助けになる:)あなたは今答えを受け入れることができます:) – laurac

関連する問題