jquery.next()工作不正常
Im使用js快捷键插件为上下箭头启用键盘快捷键以选择选项卡。单击选项卡时,将选中该选项卡。单击选项卡并使用上下箭头选择相邻选项卡。我正在使用jquery.next()工作不正常,jquery,shortcut,next,Jquery,Shortcut,Next,Im使用js快捷键插件为上下箭头启用键盘快捷键以选择选项卡。单击选项卡时,将选中该选项卡。单击选项卡并使用上下箭头选择相邻选项卡。我正在使用.prev()和.next()来控制选择,但是.next()有问题。选择某个选项卡时,所选内容只会跳到最后一个选项卡 JSBIN: JS: shortcut.add("up",function() { $('.tab').each(function(){ var selected = $(this).hasClass('selected');
.prev()
和.next()
来控制选择,但是.next()
有问题。选择某个选项卡时,所选内容只会跳到最后一个选项卡
JSBIN:
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');
}
});
});
你不需要循环。只需将所选选项卡移动到下一个选项卡一次
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');
}
});
你在所有标签上的循环。进入“选定”选项卡时,将选中下一个选项卡。然后下一个循环将其再次移动到之后的循环,依此类推。摆脱循环,找到所选选项卡,然后选择下一个。谢谢。您能解释一下为什么要使用
selected.length
?length
是集合中的对象数。如果选择器不匹配任何内容,则它将为0
,这相当于false
。