2016-09-19 67 views
0

我試圖檢測一個場景中的按鍵是一個ID爲「世界」的div 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的元素,所以$('#世界),而不是(「世界」)。

第二個問題是e.keyCode可以在一些瀏覽器上工作,但不是全部。由於您使用jQuery,您可以可靠地使用e.which:

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

它不應該是'如果(e.which == || 46 == e.which 8)'? 8將始終評估爲真實。 – showdev

0

當你的視DIV不能集中(不同於文本輸入字段),你的方法不會檢測到任何keyup。相反,你需要將事件偵聽器附加到window

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

如果您有任何<input>字段或在您的網頁<textarea>元素,你可能不wan't聽這些特定的3D場景事件在輸入文本時。所以,你可能要延長代碼:

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