2016-09-19 47 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; 
    ... 
});