1

jsFiddle デモリンク

こんにちは、上記のデモにあるように、div レイヤーをクリックしたときに keypress イベント ハンドラーをバインドしたいと考えています。機能は、削除キーを使用して選択したレイヤーを削除することです。

しかし、削除キーを押してもキープレス ハンドラが起動しません。提案してください。

4

3 に答える 3

4

' ' を削除():

$this.on("keypress", keyAction);

関数が何も返さないため、 undefinedhandler: $this.on("keypress", keyAction())is equal to$this.on("keypress", undefined)の場合に追加しています。keyAction

また、divキーボード イベントを受け取るには、フォーカス可能である必要があります。そのため、次のように追加する必要がありますtabindex

<div class="dragClass" tabindex="0">

次に、selectActiondiv にフォーカスして、キープレス イベントを受け取ります。

$this.focus();

これはデモです

keyboard eventなどの静的要素にを追加する方法の詳細については、次divを参照してください

于 2012-06-13T06:47:57.633 に答える
2
Use this code it execute for delete key        
             $("#ParentDIV").keyDown(function (e) {
              if (e.keyCode == 46) {
               // Do it
              }
             });
于 2012-06-13T06:50:05.853 に答える
1

要素がキー押下イベントを受信するには、フォーカスが必要です。1つの方法は、tabindexを追加することです。要素をクリックしてから、下のフィドルのキーボードボタンをクリックすると、イベントが表示されます。私はフィドルを少し取り除き、フォーカスを妨げているドラッグ可能なものを取り除きました。

http://jsfiddle.net/e2yfC/27/

于 2012-06-13T07:00:40.130 に答える