2013-03-07 62 views
9

我有这样的脚本造成的段落内链接的悬停一段的背景颜色。我不知道该怎么做是因为一旦我“解除悬停”,它就会回到原来的背景颜色。jQuery的未悬停

$(function(){ 
    $(".box a").hover(function(){ 
    $(this).parent().css('background-color', '#fff200'); 
    }); 
}); 

谢谢!

+3

你可以考虑使用':hover'伪选择,没有任何JavaScript的CSS这样做。见http://quirksmode.org/css/selectors/hover.html – Brandon 2013-03-07 16:10:25

+0

我不认为,因为我改变了一个父项的颜色我只能使用CSS。我不认为你可以单独在CSS中选择父选择器。 – user1754427 2013-03-07 16:17:03

回答

28

了以下功能工作原理的onmouseover和onmouseout

$(function(){ 
    $(".box a").hover(function(){ 
    $(this).parent().css('background-color', '#fff200'); 
    }, function(){ 
     // change to any color that was previously used. 
     $(this).parent().css('background-color', '#fff200'); 
    }); 
}); 
+0

这个完美的作品(除第二背景颜色必须是原来的颜色 - #FFF在我的情况 - 而不是悬停颜色)。 – user1754427 2013-03-07 16:15:56

+0

我知道,这就是为什么我把意见有改变之前的颜色:)高兴能帮上忙,不要忘了接受的答案 – 2013-03-07 16:18:02

1

有一个在jQuery documentation悬停了处理程序。这就是你想把颜色还原到原来的地方。如果你只是在改变颜色,为什么不使用CSS?

$(function(){ 
    $(".box a").hover(function(){ 
     $(this).parent().css('background-color', '#fff200'); 
    },function(){ 
     $(this).parent().css('background-color', '#originalhexcolor'); 
    }); 
}); 
+0

我不认为我只能使用CSS,因为我正在更改父项的颜色。我不认为你可以单独在CSS中选择父选择器。 – user1754427 2013-03-07 16:17:25

+0

我明白了......那么我猜jQuery是最好的前进方向。 – 2013-03-07 16:19:53

2

JQuery的

$(".box a").hover(function(){ 
    $(this).parent().css('background-color', '#fff200'); 
}, function() { 
    $(this).parent().css('background-color', '#ffffff'); 
}); 

fiddle

1

如果必须使用jQuery为此,使用addClass()而不是css()

$('.box a').hover(function(){ 
    $(this).closest('.box').addClass('hoveredOver'); 
}, function(){ 
    $(this).closest('.box').removeClass('hoveredOver'); 
}); 

随着CSS:

.hoveredOver { 
    background-color: #fff; 
} 

JS Fiddle demo

参考文献: