带有关键事件的AngularJS导航

带有关键事件的AngularJS导航,angularjs,Angularjs,我试图通过条目之间的关键事件创建导航。左右键可向两端移动。它的工作原理与我从某人那里修改的类似,尽管在实际的一个条目中,每个条目都有自己到上一个和下一个条目的链接 angular.element($document).bind("keyup", function(event) { if (event.which === 37) { $scope.$apply(function() { $location.path("/Book/Moby"); }); } el

我试图通过条目之间的关键事件创建导航。左右键可向两端移动。它的工作原理与我从某人那里修改的类似,尽管在实际的一个条目中,每个条目都有自己到上一个和下一个条目的链接

angular.element($document).bind("keyup", function(event) {
  if (event.which === 37) {
    $scope.$apply(function() {
      $location.path("/Book/Moby");
    });
  } else if (event.which === 39) {
    $scope.$apply(function() {
      $location.path("/Book/Gatsby");
    });
  }
});
它在JSFIDLE中似乎工作得很好,但是如果您查看控制台,看到从左键和右键触发的事件数量,它将严重降低导航速度。这些事件中的每一个都将运行$location.path


任何关于如何只听一次事件或刷新旧事件的建议都非常好

您可以在绑定之前解除绑定

angular.element($document).unbind('keyup');
让我们假设元素是li,它曾经是最常见的dom

<ul>
<li></li> 
<li></li>
<li></li> 
<li></li>
<ul>
提供详细的解释,使基本概念变得清晰

<ul>
<li></li> 
<li></li>
<li></li> 
<li></li>
<ul>
use some Mathematics Height*nth:child will always give you a right position