2016-06-30 3 views
0

を使用しているとき、私は以下のチュートリアルからのコードを使用しています機能を繰り返す:jQueryの私は、私はちょうどここに本当に簡単に何かを見逃している願っていますカスタムキーボード

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

プロジェクトはのポップアップキーボードを持っていることです私はさまざまな理由でいくつかの変更を行いました。別のテキストフィールドと入力キーをクリックするたびに、フィールドの文字が2倍になります。以下

コード:

<!DOCTYPE html> 

<html> 
    <head> 
    <meta name="viewport" content="width=device-width" /> 
    <title>Index</title> 
    <link href="~/Content/keyboard_css.css" rel="stylesheet" /> 
    </head> 
    <body> 

    <div id="container"> 
     <label>Client Name</label><div class="tbx" id="tbx_1" contenteditable></div> 
     <div class="tbx" id="tbx_2" contenteditable></div> 
     <div class="tbx" id="tbx_3" contenteditable></div> 
     <div class="tbx" id="tbx_4" contenteditable></div> 
     <div class="tbx" id="tbx_5" contenteditable></div> 

     <ul id="keyboard"> 
      <li class="symbol"><span class="off">`</span><span class="on">~</span></li> 
      <li class="symbol"><span class="off">1</span><span class="on">!</span></li> 
      <li class="symbol"><span class="off">2</span><span class="on">@@</span></li> 
      <li class="symbol"><span class="off">3</span><span class="on">#</span></li> 
      <li class="symbol"><span class="off">4</span><span class="on">$</span></li> 
      <li class="symbol"><span class="off">5</span><span class="on">%</span></li> 
      <li class="symbol"><span class="off">6</span><span class="on">^</span></li> 
      <li class="symbol"><span class="off">7</span><span class="on">&amp;</span></li> 
      <li class="symbol"><span class="off">8</span><span class="on">*</span></li> 
      <li class="symbol"><span class="off">9</span><span class="on">(</span></li> 
      <li class="symbol"><span class="off">0</span><span class="on">)</span></li> 
      <li class="symbol"><span class="off">-</span><span class="on">_</span></li> 
      <li class="symbol"><span class="off">=</span><span class="on">+</span></li> 
      <li class="delete lastitem">DEL</li> 
      <li class="tab">TAB</li> 
      <li class="letter">q</li> 
      <li class="letter">w</li> 
      <li class="letter">e</li> 
      <li class="letter">r</li> 
      <li class="letter">t</li> 
      <li class="letter">y</li> 
      <li class="letter">u</li> 
      <li class="letter">i</li> 
      <li class="letter">o</li> 
      <li class="letter">p</li> 
      <li class="symbol"><span class="off">[</span><span class="on">{</span></li> 
      <li class="symbol"><span class="off">]</span><span class="on">}</span></li> 
      <li class="symbol lastitem"><span class="off">\</span><span class="on">|</span></li> 
      <li class="capslock">CAPS</li> 
      <li class="letter">a</li> 
      <li class="letter">s</li> 
      <li class="letter">d</li> 
      <li class="letter">f</li> 
      <li class="letter">g</li> 
      <li class="letter">h</li> 
      <li class="letter">j</li> 
      <li class="letter">k</li> 
      <li class="letter">l</li> 
      <li class="symbol"><span class="off">;</span><span class="on">:</span></li> 
      <li class="symbol"><span class="off">'</span><span class="on">&quot;</span></li> 
      <li class="return lastitem">ENTER</li> 
      <li class="left-shift">SHIFT</li> 
      <li class="letter">z</li> 
      <li class="letter">x</li> 
      <li class="letter">c</li> 
      <li class="letter">v</li> 
      <li class="letter">b</li> 
      <li class="letter">n</li> 
      <li class="letter">m</li> 
      <li class="symbol"><span class="off">,</span><span class="on">&lt;</span></li> 
      <li class="symbol"><span class="off">.</span><span class="on">&gt;</span></li> 
      <li class="symbol"><span class="off">/</span><span class="on">?</span></li> 
      <li class="hide">HIDE</li> 
      <li class="space lastitem">&nbsp;</li> 
     </ul> 

    </div> 

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 

    </body> 
</html> 

<script> 

    $(document).ready(function() { 

     // Hide Keyboard on load 
     $('#keyboard li').hide(); 
    }); 


    $(function(){ 
    // Show Keyboard on click 
    $('.tbx').click(function() { 
     $('#keyboard li').show(); 

     inputBox = $(this).attr('id'); 
     //alert(inputBox); 

     i = '#'; 
     GetId = i.concat(inputBox); 
     $write = $(GetId), 
     shift = false, 
     capslock = false; 

     $('#keyboard li').click(function() { 
      $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; 
      } 

      // Hide Keyboard 
      if ($this.hasClass('hide')) { 
      $('#keyboard li').hide(); 
      return false; 
      } 

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

      // Delete 
      if ($this.hasClass('delete')) { 
      html = $write.html(); 
      $write.html(html.substr(0, html.length - 1)); 

      return false; 
      } 

      // Special characters 
      if ($this.hasClass('symbol')) character = $('span:visible', $this).html(); 
      if ($this.hasClass('space')) character = ' '; 
      if ($this.hasClass('tab')) character = "\t"; 
      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 
      $write.html($write.html() + character); 
     }); 
     }); 
    }); 


</script>' 
+1

変数を宣言するときはいつも、 'var 'の前に置く必要があります – Yuri

答えて

0

あなたが入力をクリック#keyboard li毎回をクリックしてくださいバインド。ときにすべてのあなただけ)(アンバインド追加するすべてのこの$('#keyboard li').unbind().click(function()

+0

そのバインドはどこにありますか? – Yuri

+0

'$( 'keyboardl')を呼び出すことで' $( '。tbx')の中をクリックします。クリックすると、クリックイベントを入力時にクリックするたびに続く関数にバインドします。 –

+0

治療に取り組んで、私は拘束力を上手く読んでいた...ありがとう! –

0

まずようにクリックする前に、私は、その後、(本当に必要な場合)

$(document).ready(function() { 
    var $write, shift, capslock; //declared globally 

    // Hide Keyboard on load 
    $('#keyboard li').hide(); 

    $('.tbx').click(function() { 

     $('#keyboard li').show(); 


     var inputBox = $(this).attr('id'), 
      i = '#', 
      GetId = i.concat(inputBox); 
     $write = $(GetId); 
     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; 
     } 

     // Hide Keyboard 
     if ($this.hasClass('hide')) { 
      $('#keyboard li').hide(); 
      return false; 
     } 

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

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

      $write.html(html.substr(0, html.length - 1)); 

      return false; 
     } 

     // Special characters 
     if ($this.hasClass('symbol')) character = $('span:visible', $this).html(); 
     if ($this.hasClass('space')) character = ' '; 
     if ($this.hasClass('tab')) character = "\t"; 
     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 
     $write.html($write.html() + character); 


    }); 
}); 

を必要なときにvarを追加し、あなたのコードを修正することをお勧めして正しくネストコードが正確で読みやすい場合は、バグを探すことができます

関連する問題