2013-05-21 3 views
1

Я пытаюсь создать навигацию по ключевым событиям между записями. Левая и правая клавиши перемещаются в обе стороны. Он работает аналогично этому JsFiddle i, измененному от кого-то, хотя на самом деле каждая запись будет иметь свои собственные ссылки на предыдущий и следующий.Навигация по AngularJS с ключевыми событиями

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, но если вы посмотрите на консоль и увидеть количество событий, запускаемых с левой и правой keyups он будет серьезно замедлить навигацию. Каждое из этих событий будет запускать $ location.path.

Любые советы о том, как только один раз слушать событие или флеш старые события было бы здорово

ответ

2

Вы можете unbind его перед его связывания. предположим, что элемент

angular.element($document).unbind('keyup'); 
0
 First of all you have to check whether it is hide from bottom side or upper side. 

Давайте Ли, который имел обыкновение быть наиболее распространенным дом.

<ul> 
<li></li> 
<li></li> 
<li></li> 
<li></li> 
<ul> 

то каждая высота Li относительно ПОлОжЕНИЕ уль .Если есть 1000 элементов, то, если вы хотите узнать позицию элемента, то 900 вы можете узнать со смещением(), но при применении одушевленные и сделать их видно, что вы застряли, что свиток не перемещает элемент, который скрыт, он должен быть больше.

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

обеспечение скрипку expamle так, что основная концепция получит ясно http://jsfiddle.net/MGwVM/108/

Смежные вопросы