2016-09-19 6 views
0

idが "world"のdivのシーンのキー入力を検出しようとしていますとなるはずですが、ない。ここでは、次のとおりです。jqueryを使用してthree.jsシーンのキー入力を検出します

$('world').keyup(function(e){ 
    console.log('keyup'); 
    if(e.keyCode == 46 || 8) { 
     if(selectedWood != null){ 
      array.splice(index, object.findIndex(selectedWood)); 
     } 
    } 
}); 

答えて

1

最初の問題は、IDを持つ要素を選択するために、「#」が必要なので、代わりに(「世界」)の$(「#の世界」)。

2番目の問題はe.keyCodeが一部のブラウザでは動作しますが、すべてではないことです。あなたはjQueryのを使用しているので、あなたは確実にe.which使用することができます:あなたのビューポートのdivとして

if(e.which == 46 || e.which == 8) 
+1

が、それはすべきではない '場合(e.which == 46 || e.which == 8)':だから、あなたはコードを拡張することができますか? 8は常に真実と評価されます。 – showdev

0

は(テキスト入力フィールドとは違って)焦点を当てたことができない、あなたの方法は、任意のkeyupを検出することができません。代わりに、windowにイベントリスナーをアタッチする必要があります:あなたはどの<input>フィールドや、Webページ上の<textarea>の要素を持っている場合、あなたはおそらく特定のこれらの3Dシーンに耳を傾けるwan'tはありません

$(window).keyup(function (event) { 
    ... 
}); 

イベントをテキスト入力中に表示します。

$(window).keyup(function (event) { 
    if(['INPUT', 'TEXTAREA'].indexOf(event.target.tagName) !== -1) return; 
    ... 
}); 
関連する問題