【发布时间】:2015-03-13 10:50:43
【问题描述】:
考虑到我在第 n 行和第 n 列 (xyz1),当我按下“向下箭头键”时,它应该更改下一行第 n 列的背景颜色,同样当我按下“向上箭头键”时它应该改变前行第n列的背景颜色。
我试过了,但是背景颜色不适用,我需要做什么?
HTML::
div class="row col-md-10">
<div class="col-md-3 " style="background-color: #dedef8" >Name</div>
<div class='col-md-3' style="background-color: #dedef8">adress</div>
<div class='col-md-3' style="background-color: #dedef8">phone</div>
<div class='col-md-3' style="background-color: #dedef8">email</div>
</div>
<div class="row col-md-10">
<div ng-repeat='d in data' ng-init="sectionIndex = $index">
<div class='col-md-3' ng-keydown="IamDowm($event)" style="background-color: #dedec2" focus ng-enter inx='{{sectionIndex}}' tabindex="-1">{{d.a}}</div>
<div class='col-md-3' ng-keydown="IamDowm($event)" style="background-color: #dedec2" focus ng-enter inx='{{sectionIndex}}' tabindex="-1">{{d.b}}</div>
<div class='col-md-3' ng-keydown="IamDowm($event)"style="background-color: #dedec2" focus ng-enter inx='{{sectionIndex}}' tabindex="-1">{{d.c}}</div>
<div class='col-md-3'ng-keydown="IamDowm($event)" style="background-color: #dedec2" focus ng-enter inx='{{sectionIndex}}' tabindex="-1">{{d.d}}</div>
角度指令:
sidapp.directive('ngEnter', function () {
return function (scope, element, attrs) {
element.bind("keydown keypress", function (event) {
if(event.which === 39) {
var target = $(event.target).next();
$(target).trigger('focus');
$(target).next().css('background-color', 'red');
//event.preventDefault();
}else if(event.which === 37){
var target = $(event.target).prev();
$(target).trigger('focus');
console.log($(target));
$(target).prev().css('background-color', 'green');
}else if(event.which === 40){
var target = $(event.target).parent().siblings('div').eq(parseInt(attrs.inx));
$(target).eq(0).css('background-color', 'blue');
console.log( $(event.target));
console.log(target);
}
});
};
});
【问题讨论】: