做了一个 fiddle :http://jsfiddle.net/n6ub3/
我知道代码中有很多重复,一旦功能正确,就可以重构它。
我想要实现的行为是,如果页面加载时没有 selectedTab,则将每个组中的第一个选项卡设置为 selectedTab。如果存在 selectedTab,则使用它作为默认显示的 div。
但是,正如您从 fiddle 中看到的那样,它没有按计划工作!
如果有人有任何想法如何重构这段代码,那就太好了!
最佳答案
改变
if($('.tabs1 .tabTrigger:not(.selectedTab)')){
$('.tabs1 .tabTrigger:first').addClass('selectedTab');
}
至
if ( !$('.tabs1 .tabTrigger.selectedTab').length ) {
$('.tabs1 .tabTrigger:first').addClass('selectedTab');
}
演示地址:http://jsfiddle.net/n6ub3/1/
如果至少有一个,您将添加 .selectedTab
类(第一个代码部分)该组中在开始时未选择的选项卡..(这意味着始终)
更新
有关缩短版本,请参阅 http://jsfiddle.net/n6ub3/7/
关于javascript - jQuery 'not' 函数给出虚假结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7334000/