在我的应用程序中,我有一个包含一些设置信息的面板。该面板通过单击按钮打开/关闭,但我也希望能够通过点击关闭它esc
在键盘上。
我的视图的代码如下所示:
Social.MainPanelView = Ember.View.extend({
elementId: 'panel-account-settings',
classNames: ['panel', 'closed'],
keypress: function(e){
console.log(e);
console.log('keypress');
},
close: function(){
this.$().prepareTransition().addClass("closed");
}
});
我也尝试过 keyup 和 keydown 但没有任何反应。我怀疑这是因为这不是“输入”类型视图而只是标准视图。那么如何通过按键事件触发视图上的方法呢?
我应该澄清,这不在这个特定元素的路由上下文中。我正在独立打开面板,如视频所示:
http://screencast.com/t/tDlyMud7Yb7e http://screencast.com/t/tDlyMud7Yb7e
UPDATE 1
这是我创建的一个快速小提琴 http://jsfiddle.net/7GTQq/1/来说明我遇到的问题。我可以很容易地触发点击事件,但我正在寻找一个页面范围的 keyup 事件,它将检测按下的 esc 键并触发特定视图上的方法:
为了使按键起作用,您必须将焦点转移到视图上。当它是一个输入时,它会起作用,因为你将注意力集中在它上面。
像这样的事情:
App = Em.Application.create();
App.IndexController = Em.Controller.extend({
updateKey: function(keyCode) {
// Do what you gotta do
this.set('shortcutKey', keyCode);
},
shortcutKey: null
});
App.IndexView = Em.View.extend({
didInsertElement: function() {
return this.$().attr({ tabindex: 1 }), this.$().focus();
},
keyDown: function(e) {
this.get('controller').send('updateKey', e.keyCode);
}
});
这是一个工作示例:http://jsbin.com/ihuzov/1 http://jsbin.com/ihuzov/1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)