我曾经有一个jQuery应用程序,在文档准备好后有一个'keydown'事件。基本上,只要用户点击一个键,它就会匹配键码并做一些事情。现在我把这个应用程序移植到Ember,生活变得困难有两个原因:
1)唯一可以注册'keyDown'事件的时间是包含元素/ View的焦点。使用非输入字段可以完成的唯一方法是设置tabindex值,为此,我这样做:
didInsertElement:function(){
this.$().attr("tabindex",0);
this.$().focus(); //bringing focus to the view in order to ensure keyDown event is triggered :)
},
keyDown:function(event){
var keycode = event.which || event.keycode;
switch(keycode){
//perform various events
}
}
2)所以上面的工作就像一个魅力,除了它在应用程序上创建一个丑陋的突出显示焦点,每当应用程序失去焦点时,keyDown事件不会触发。我需要明确地单击ApplicationView区域(这不是整个主体)。
我真正想要的是让一个简单的keydown事件触发,就像我在jQuery中使用它时一样。任何机构都有想法是什么了?
答案 0 :(得分:0)
Ember专门捕获在ember应用程序范围内发生的事件,因此如果你想捕获应用程序外部的事件(因为你的整个页面不是一个ember应用程序),而不必专注于ember你必须在ember范围之外创建那些事件。