2012-11-29 2 views
3

Meteor 0.5.2 (0.5에서)로 업그레이드 한 후 키 이벤트 ('keypress', 'keydown' , keyup ') 나를 위해 일하는 것이 중단되었습니다. 다른 이벤트 ('click'& 'blur')는 정상적으로 작동합니다. 심지어 샘플Keypress 이벤트가 0.5.2로 업데이트 된 후 Meteor의 "input"요소 바깥에서 작동이 중지되었습니다.

이 같은 코드가 아무것도하지 않는 애플 리케이션 :

Template.someTemplate.events = { 
    'keydown' : function(e) { 
     console.log(e); 
    } 
}; 

흥미로운 것은이 코드 는 내가 내부 타이핑 키 누르기에 대한 일 (함수 화재)를 않는다는 것입니다 입력 유형 = "텍스트" 또는 텍스트 영역. 그러나 다른 곳에서는 아무 일도 일어나지 않습니다.

우분투 12.10의 최신 Crome에 대한 테스트를 진행하고 있습니다.

다른이 문제가 발생 했습니까?

덕분에, 조지

답변

9

를 keyDown 이벤트는 편집 가능한 HTML 나를 위해 작동합니다. 입력 필드 또는 contenteditable 태그는 keydown 이벤트를 발생시킵니다.

하지만 몸에를 keyDown 이벤트를 처리하는 방법을 요구하는 경우,이 스레드가 도움이 될 수 있습니다 :이 스레드에서 좀 걸릴 수 있습니다

: https://groups.google.com/forum/?fromgroups=#!topic/meteor-talk/uHy--xIGH8o.

기본적으로 이제는 body 요소에 직접 이벤트 핸들러를 연결할 수 있습니다. 위의 링크의 예에서, 그는 템플릿을 렌더링 할 때까지 대기 한 후 핸들러를 연결하는 jQuery를 사용 :

Template.myTemplate.rendered = function() { 
     // Assuming you're using jQuery 
     $('body').on('keydown',function() { 
       console.log('key pressed'); 
     }); 
} 

유성 팀은 분명히 곧 신체 수준의 이벤트를 연결하는 더 나은 지원을 포함하는 것입니다.

+5

이 그것을 할 수있는 방법은 아직인가? 나는 이것에 대한 어떤 정보도 찾을 수 없었고, 일반적으로 유성에서의 비 - 입력 키 스트로크에서 아무 것도 찾는 데 어려움을 겪고있다. 나는 이것이 더 자주 일어나지 않는다고 놀랍다. – supertrue

+0

이것이 최선의 방법인지 확실치 않지만 유성기 1.1.0.2에서 스틸이 작동하는지 확인할 수 있습니다. – guaka

0
당신은 단순히 동봉 수

$ ('몸')에 ('를 keyDown', 기능() { 을 console.log ('키를 누르면'); }).; meteor.startup 기능에

관련 문제