所以我有一个数组:
var summaryList;
summaryList = ['a','b','c', 'd']
数组中的每个项目代表我想要抓住焦点的元素。我想通过使用导航数组中每个项目的左/右箭头按键来完成此操作。调用焦点后,我想将边框设置为黄色以显示它是活动的:
$(document).keydown(function(e){
if (e.keyCode == 37) {
console.log('left')
}
if (e.keyCode == 39) {
var pos;
pos = this.summaryList[];
console.log('right');
console.log(pos);
$(pos[0 +1]).focus().css('border', "yellow");
}
});
我的问题是当我希望它读取summaryList数组中的当前项时,console.log(pos)以未定义的形式返回。每次按键后,数组项应移动一个索引位置
答案 0 :(得分:2)
var summaryList = ['a', 'b', 'c', 'd'];
// Hold reference to the currently focussed position
var currentPosition = 0;
// Maximum position we can navigate to is the last item in the summary list
var maxFocusablePosition = summaryList.length - 1;
// Utility function to focus a given position value
function focusPosition(position) {
$(summaryList[position]).focus().css('border', 'yellow');
}
// Focus the first one by default
focusPosition(currentPosition);
$(document).keydown(function (event) {
if (event.keyCode === 37) {
currentPosition > 0 ? currentPosition-- : 0;
}
if (event.keyCode === 39) {
currentPosition < maxFocusablePosition ? currentPosition++ : maxFocusablePosition;
}
focusPosition(currentPosition);
});
答案 1 :(得分:0)
OracleDbType.Byte
应该只是
pos = this.summaryList;
pos = summaryList;
指的是该文件。 summaryList在窗口中定义。
或者您可以执行this
,但很少需要添加&#34;窗口。&#34;从全局范围调用项目时。
<小时/>
你遇到的另一个问题是......
window.summaryList
$(pos[0 +1]).focus().css('border', "yellow");
将成为您数组中的项目,例如&#34; c&#34;。
pos[0 +1]
不是有效的选择器,因此只会混淆jQuery。