私はこの次のコードを試しています。sh
キーを押すたびに入力の属性を1に変更し、shift
離すと0に戻ることになっています。
<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$(document).on("keyup","body",function(e) {
if (e.which == 16) {
$("input").attr("sh","0");
}
});
$(document).on("keydown","body",function(e) {
if (e.which == 16) {
$("input").attr("sh","1");
}
});
});
</script>
</head>
<body>
<input type = 'text' sh = '0'/>
<p>Just checking</p>
</body>
</html>
この一連のイベントが実行される場合を除いて、正常に機能します。入力にフォーカスがないときにShiftキーを押します。(Firebugはsh
予想通り1になることを示しています)。キーを押したまま、入力に焦点を合わせます。次に、入力を右クリックします。コンテキストメニューがポップアップします。ここで、shift
キーを離すと(コンテキストメニューをそのままにしておく)、Firebugはそれsh
がまだ1であることを示します。コンテキストメニューの外側をクリックして移動するかpaste
、クリップボードのテキストを入力に貼り付けるオプションをクリックしても、 sh
1のままです。もう一度押して放すshift
と、sh
再び0になります。
これを修正する方法はありますか?