【发布时间】:2015-11-02 04:56:30
【问题描述】:
我有一个链接列表,点击每个链接都会使用唯一的数字索引更新 selectedLinkIndex 值。如果链接的索引(请参阅下面 JS fiddle 中的 ng-click 绑定)等于 selectedLinkIndex 则链接的类将更新为使用 CSS 将其着色为红色。
我想扩展此功能,以便按左右箭头键递增/递减 selectedLinkIndex 并更新链接的类以将所选链接着色为红色(根据上述行为)。
但是,这似乎不起作用(请参阅我的JS fiddle)。为什么这不起作用,我该如何实现所需的行为?
<div ng-controller="MyCtrl">
<ul>
<li><a href="#" id="link1" ng-class="linkClass(0)" ng-click="updateLinkIndex(0)">Link1</a></li>
<li><a href="#" id="link2" ng-class="linkClass(1)" ng-click="updateLinkIndex(1)">Link2</a></li>
<li><a href="#" id="link3" ng-class="linkClass(2)" ng-click="updateLinkIndex(2)">Link3</a></li>
</ul>
</div>
function MyCtrl($scope) {
$scope.selectedLinkIndex = 0;
$scope.linkClass = function(index) {
return (index == $scope.selectedLinkIndex) ? "active" : "";
}
$scope.updateLinkIndex = function(value) {
$scope.selectedLinkIndex = value;
}
$(document).keydown(function(e) {
switch(e.which) {
case 37:
$scope.selectedLinkIndex--;
break;
case 39:
$scope.selectedLinkIndex++;
break;
default:
return;
}
alert("Selected Link index is now " + $scope.selectedLinkIndex);
});
}
【问题讨论】:
标签: javascript jquery angularjs class binding