2016-09-19 7 views
0

"world"라는 ID를 가진 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

이 (텍스트 입력 필드와는 달리) 집중 될 수 없다, 당신의 방법은 어떤 keyup를 검색하지 않습니다. 대신 당신은 window에 이벤트 리스너를 첨부해야합니다 당신이 어떤 <input> 필드 또는 웹 페이지에 <textarea> 요소가있는 경우, 당신은 아마 특정 이러한 3D 장면을 듣고 wan't하지 않는

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

이벤트를 텍스트를 입력하는 동안.

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