大佬教程收集整理的这篇文章主要介绍了如何在Angularjs的列表中使用键上/下指令?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
app.directive('ngUp',function () { return function (scope,element,attrs) { element.bind("keyup",function (event) { if(event.which === 40) { console.log('down') } else if (event.which === 38) { console.log('up'); } else { console.log('some other'); } }); }; });@H_673_5@我有: @H_673_5@
<div class="scrollbar" id="ex3"> <div> <ul> <li ng-repeat="video in videos"> <a href="#" ng-click="SELEct($indeX)" style="font-size: 100%"> {{video.name | subStringFilter : 20}} </a> </li> </ul> </div>@H_673_5@如果我把ng-up放在li元素或锚元素上,我将指令中的元素作为a.ng-binding. @H_673_5@我不知道这是什么. @H_673_5@我想要的是能够使用我的向上和向下箭头键向上和向下滚动列表(并在滚动时将类应用于突出显示的列表元素). @H_673_5@我期待元素可以是li元素或锚元素,但是我得到了a.ng-binding,它在向上或向下按键时不会触发.
<li tabindex="{{$index}}">@H_673_5@试试这个指令: @H_673_5@
app.directive('ngUp',function() { return { scope: { SELEct: "&" },link: function(scope,attrs) { element.on("keyup","[SELEctable]",function(event) { var $this = $(this); var SELEctedElement = {}; scope.$apply(function() { if (event.which === 40) { SELEctedElement = $this.next("[SELEctable]"); if (SELEctedElement.length > 0) { scope.SELEct({ element: SELEctedElement }); } } else if (event.which === 38) { SELEctedElement = $this.prev("[SELEctable]"); if (SELEctedElement.length > 0) { scope.SELEct({ element: $this.prev("[SELEctable]") }); } } else { } }); if (SELEctedElement.length > 0) { $this.blur(); SELEctedElement.focus(); } }); } } });@H_673_5@在html中使用它: @H_673_5@
<ul ng-up SELEct="SELEct(element)"> <li SELEctable ng-repeat="video in videos" tabindex="{{$index}}" ng-click="SELEct($event.target)" ng-class="{SELEcted:video.SELEcteD}"> <a href="#" style="font-size: 100%"> {{video.name }} </a> </li> </ul>@H_673_5@DEMO(点击选择一个元素,从那时你可以使用向上和向下箭头选择) @H_673_5@说明: @H_673_5@在我看来,这个指令应该在列表项容器元素上指定(在这种情况下是< ul>),并且任何可选项都必须应用一个可选择的属性.为了使指令可重用,该指令只负责处理keyup事件并选择元素,如何选择元素的实现细节应作为函数传递: @H_673_5@
scope: { SELEct: "&" }@H_673_5@每当我需要选择一个元素时,我都会调用这个绑定函数: @H_673_5@
scope.SELEct({ element: $this.prev("[SELEctable]") });@H_673_5@在这个例子中,我假设将元素设置为选中的逻辑如下: @H_673_5@
$scope.SELEct = function(element) { angular.forEach($scope.videos,function(value) { value.SELEcted = false; }); angular.element(element).scope().video.SELEcted = true; };
以上是大佬教程为你收集整理的如何在Angularjs的列表中使用键上/下指令?全部内容,希望文章能够帮你解决如何在Angularjs的列表中使用键上/下指令?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。