2017-05-15 15 views
1

考えられるのは、ノーマル・キーが押された場合に修飾キーでチェーンすることです。 CjQuery - キーが押されたときにコードを実行し、リリース時にコードを通常に戻す

次作品C Ctrlキー対:キーがダウンしていると、それが解放されますとき、それは通常の状態に戻ったときに

var inc = 10; 

$(document).keydown(function(e) { 
    switch(e.which) { 
     case 16: // shift 
      inc = 100; 

      break; 

     case 17: // ctrl 
      inc = 1; 

      break; 
    } 
}); 

$(document).keyup(function() { 
    inc = 10; 
}); 

変数は、それぞれの値に設定されています。あなたが最初の関数が終了するのを待つだけ、その後、通常の

Bにそれを返すコード実行することができます - - への組み込みの方法のいくつかの種類がある場合を

A:しかし、私は場合は思ったんだけどちょうどそれがキーコードだために見ていない、あなたはCTRLまたはSHIFTキーが改質剤として使用されたかどうかを知りたい場合は、手動で

答えて

1

を設定せずに元の値に戻すことを元に戻します。代わりに、イベントのctrlKeyまたはshiftKeyプロパティを使用します。最初の関数が終了するのをあなたはただ待つことができ、その後、通常に戻すコードを実行 -

A:

var inc = 10; 
 
$('input').val(inc); 
 
    
 
$(document).keydown(function(e) { 
 
    if (e.shiftKey) { 
 
    inc = 100; 
 
    } else if (e.ctrlKey) { 
 
    inc = 1; 
 
    } 
 
    
 
    $('input').val(inc); 
 
}); 
 

 
$(document).keyup(function() { 
 
    inc = 10; 
 
    
 
    $('input').val(inc); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" />

は、あなたの質問に答えるために:これを試してみてください

B - 手動で設定することなく元の値に戻すための組み込みの方法がある場合

両方の答えはいいえです。あなたが使用しているパターンが最良の方法です。

+0

[This](http://joeydehnert.com/2014/04/06/9-development-practices-that-helped-me-write-more-manageable-and-efficient-javascript-and-jquery/) blogpostはあなたが「セレクタをキャッシュする」ことができ、それがマウスイベントのために機能すると言いますが、違いは何ですか? – JackHasaKeyboard

+0

そのリンクは404になります –

+0

ページを一度更新すると記事が読み込まれます。私は、なぜか – JackHasaKeyboard

関連する問題