所有
我想要做的是添加一个关键监听器来控制页面上的菜单切换。
<body ng-controller="main" ng-keydown="toggleSideBar($event)">
在主控制器中:
$scope.sidebarOpen = false;
$scope.toggleSideBar = function(e){
if(e.keyCode == 18){ // 'ALT' key
$scope.sidebarOpen = !$scope.sidebarOpen;
}
}
在模板中:
.sidebar {
left:100px;
transition: left 0.5s;
}
.sidebar.open {
left:0px;
transition: left 0.5s;
}
<div class="sidebar" ng-class="{'open': sidebarOpen}">
当我按 ALT 键时,每隔一次,它就会响应,我不确定会发生什么,有什么帮助?
更新 后来,我发现这有什么问题: 这是一个特定情况(当你点击ALT时),Chrome会使用 ALT 作为快捷方式来切换焦点在其自定义设置按钮上:
这就是为什么每隔一次,我的钥匙就可以回复了。 所以,现在问题变成:如何绕过这个?
由于
答案 0 :(得分:0)
对我来说很好,你在这里有browser
约束吗?你也可以更新fiddle
。
<div ng-app>
<h2>Example</h2>
<div ng-controller="myController">
<input ng-keydown="keypress($event)">
<p>key: {{lastKey}}</p>
<div ng-keydown="keypress($event)">
</div>
</div>
</div>
JS代码:
function myController($scope) {
$scope.lastKey = "---"
$scope.keypress = function(e) {
if(e.keyCode === 18){ // 'ALT' key
//$scope.sidebarOpen = !$scope.sidebarOpen;
$scope.lastKey = e.keyCode
}
};
}