我正在使用js快捷插件shortcut.js启用向上和向下箭头的键盘快捷键来选择标签。单击选项卡时,将选中该选项卡。单击选项卡,然后使用向上和向下箭头选择相邻选项卡。我使用.prev()
和.next()
来控制选择,但.next()
出了问题。选择选项卡后,选择只会跳到最后一个选项卡。
JSBIN:http://jsbin.com/maqiheja/3/edit?html,css,js,output
JS:
shortcut.add("up",function() {
$('.tab').each(function(){
var selected = $(this).hasClass('selected');
var end = $('.tab:first-of-type').hasClass('selected');
if((selected === true) && (end === false)){
$(this).removeClass('activeTab selected');
$(this).prev().addClass('activeTab selected');
}
});
});
shortcut.add("down",function() {
$('.tab').each(function(){
var selected = $(this).hasClass('selected');
var end = $('.tab:last-of-type').hasClass('selected');
if((selected === true) && (end === false)){
$(this).removeClass('activeTab selected');
$(this).next().addClass('activeTab selected');
}
});
});
答案 0 :(得分:1)
您不需要循环。只需将选定的标签移动到下一个标签即可。
shortcut.add("down", function() {
var selected = $('.tab.selected');
var end = $('.tab:last-of-type').hasClass('selected');
if (selected.length && !end) {
selected.removeClass('activeTab selected');
selected.next().addClass('activeTab selected');
}
});
shortcut.add("up", function() {
var selected = $('.tab.selected');
var end = $('.tab:first-of-type').hasClass('selected');
if (selected.length && !end) {
selected.removeClass('activeTab selected');
selected.prev().addClass('activeTab selected');
}
});