我有一张桌子,一年中有12个月(jan到dec)
然后我将一些月份组合在一起,即:jan到apr = group1,mar到jun = group2
所以我想做的就是改变所有具有相同组名的项目的背景颜色。
$('.group1').hover(function() {
$(this).addClass('tbl_navGroupHover');
}, function() {
$(this).removeClass('tbl_navGroupHover');
});
$('.group2').hover(function() {
$(this).addClass('tbl_navGroupHover');
}, function() {
$(this).removeClass('tbl_navGroupHover');
});
更新,我选择了这个解决方案 - tx寻求帮助:
<script>";
for ($i = 1; $i < 13; $i++) {
echo "$('.group$i').hover(function() {
$('.group$i').addClass('tbl_navGroupHover');
}, function () {
$('.group$i').removeClass('tbl_navGroupHover');
});";
}
echo "</script>";
答案 0 :(得分:3)
将this
替换为组类名,您也可以使用toggleClass
方法。
$('.group1').hover(function() {
$('.group1').toggleClass('tbl_navGroupHover');
});
$('.group2').hover(function() {
$('.group2').toggleClass('tbl_navGroupHover');
});
请注意,你还没有在小提琴中加载jQuery。
答案 1 :(得分:1)
请勿使用this
使用类名代替所有
$(this).addClass('tbl_navGroupHover');
应该
$(".group1").addClass('tbl_navGroupHover');
答案 2 :(得分:1)
不确定这是否有所不同,但在jquery文档中,'。hover'函数同时使用“handlerIn”和“handlerOut”函数。
您可以尝试以下方法:
$('.group1').hover(function() {
$('.group1').addClass('tbl_navGroupHover');
}, function() {
$('.group1').removeClass('tbl_navGroupHover');
});
$('.group2').hover(function() {
$('.group2').addClass('tbl_navGroupHover');
}, function () {
$('.group2').removeClass('tbl_navGroupHover');
});
不确定这是否会有所作为。您可能只能指定一个函数并逃脱它。这将在其中一个项目悬停时更改背景颜色,然后在移出项目时移除颜色。
希望这有帮助。