AngularJS导航与关键事件

时间:2013-05-21 00:39:11

标签: angularjs

我正在尝试通过条目之间的关键事件创建导航。左右键向两端移动。它的作用类似于我从某人修改的JsFiddle,尽管在实际的每个条目中,每个条目都有自己的链接指向前一个和下一个条目。

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");
    });
  }
});

似乎在JsFiddle中运行良好但是如果你看一下控制台并看到从左右键盘发出的事件数量,它将严重降低导航速度。其中每个事件都将运行$ location.path。

关于如何只听一次事件或冲洗旧事件的任何建议都会很棒

2 个答案:

答案 0 :(得分:2)

您可以在绑定之前unbind

angular.element($document).unbind('keyup');

答案 1 :(得分:0)

      First of all you have to check whether it is hide from bottom side or upper side.

我们假设元素是li,它曾经是最常见的dom。

<ul>
<li></li> 
<li></li>
<li></li> 
<li></li>
<ul>
然后每个li高度都是ul的相对位置。如果有1000个元素,那么如果你想找到第900个元素的位置,那么你可以找到offset()但是当你应用动画并让它们可见时你会得到卡住那个滚动不是移动元素,隐藏它应该更多。

use some Mathematics Height*nth:child will always give you a right position

提供小提琴演示,以便基本概念变得清晰 http://jsfiddle.net/MGwVM/108/