6

画像があり、キーボードを使用してそれにいくつかの操作(翻訳、ズームなど)を適用します。画像の上に、データ セット内の画像の番号を示す入力テキスト ボックスがあります。カーソルがテキスト ボックス上にあるときに画像操作を無効にするにはどうすればよいですか? (つまり、各キーボードに割り当てた動作を無効にします)。また、テキスト ボックスを編集できるようにしたいと思います (たとえば、画像番号 xx に移動するなど)。ここで読んだことからIPad Disable keyevent on input、解決策は次のようになると思います:

 // input text field
   var currentPosDisplay = $('<input type=text id="currentPos"  onkeypress="return  disableManipulation();" value="1" style="display:inline" >');

しかし、disableManipulation() を実装して、キーボード (テキスト ボックス内) を押すと、デフォルトの動作のみが発生するようにする方法がわかりません (画像操作は行われません)。

4

2 に答える 2

7

ユーザーが の値を変更できるようにしたいようですがinput、画像操作のためにキーボード イベントをフックしたドキュメント (または他のコンテナー) レベルでこれらのイベントを表示したくありません。

その場合は、次のようにして実行できますEvent#stopPropagation

var currentPosDisplay = $('<input type=text id="currentPos" value="1" style="display:inline" >');
currentPosDisplay.on("keypress keydown keyup", function(e) {
    e.stopPropagation();
});
于 2013-09-06T14:28:10.920 に答える
1

You could check if the input element has focus: How do I find out which DOM element has the focus?

And if it does, don't apply your image manipulation.

Returning false from the onkeypress handler will ignore the key that was pressed, but if you have focus it sounds like you don't want that anyway.

于 2013-09-06T14:27:29.493 に答える