我个人建议:
var contents = {
'tab1' : 'Description stuff',
'tab2' : 'Technical jiggery-pokery',
'tab3' : 'Reviews'
};
$('#tabContainer div[id]').click(function(){
var self = this;
$('#infoArea').html(contents[self.id]);
$(self).css({
'border-bottom-right-radius' : '0px',
'border-bottom-left-radius' : '0px'
}).siblings().css({
'border-bottom-right-radius' : '5px',
'border-bottom-left-radius' : '5px'
});
});
JS 小提琴演示。
提供上述内容后,我宁愿不直接操作 CSS,而是使用addClass()
/removeClass()
来实现相同的效果:
var contents = {
'tab1' : 'Description stuff',
'tab2' : 'Technical jiggery-pokery',
'tab3' : 'Reviews'
};
$('#tabContainer div[id]').click(function(){
var self = this;
$('#infoArea').html(contents[self.id]);
$(self).addClass('tabSelected').siblings().removeClass('tabSelected');
});
JS 小提琴演示。
请注意,后一个版本需要对您的 CSS 进行一些更正,您最初有:
.infoTab1 {
border-bottom-left-radius:0px;
}
但是,选择infoTab
器id
的前缀#
不是句点 ( .
),以给出:
#infoTab1 {
border-bottom-left-radius:0px;
}
此外,您:hover
交互的选择器最初写为:
.infoTab a:hover {
background-color:red;
}
然而,这个选择器正在寻找一个在类为;的元素a
中被-ed 的元素。当悬停的元素具有该类时,必须将选择器重写为::hover
infoTab
a.infoTab:hover {
background-color:red;
}
参考: