2013-03-07 14 views
9

Ich habe dieses Skript, um eine Hintergrundfarbe auf einen Absatz auf den Mauszeiger innerhalb des Absatzes zu verursachen. Was ich nicht weiß, ist, dass es zur ursprünglichen Hintergrundfarbe zurückkehrt, sobald ich "abhebe".jquery un-hover

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

Vielen Dank!

+3

Sie können '' Hover' Pseudo Selektor verwenden und dies in CSS ohne JavaScript tun. Siehe http://quirksmode.org/css/selectors/hover.html – Brandon

+0

Ich glaube nicht, dass ich nur CSS verwenden kann, weil ich die Farbe eines übergeordneten Elements ändere. Ich glaube nicht, dass Sie einen Elternselektor nur in CSS auswählen können. – user1754427

Antwort

28

Die untenstehende Funktion arbeitet als Onmouseover und 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

Dies funktioniert perfekt (außer die zweite Hintergrundfarbe musste die Originalfarbe sein - #fff in meinem Fall - nicht die Hover-Farbe). – user1754427

+0

Ich weiß das ist, warum ich den Kommentar dort setzen, um zur vorherigen Farbe zu wechseln :) froh, dass ich helfen konnte, vergiss nicht, die Antwort zu akzeptieren –

1

Es gibt einen Hover-Out-Handler in der jQuery documentation. Dort sollten Sie die Farbe auf das Original zurücksetzen. Wenn Sie nur die Farbe ändern, warum nicht CSS?

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

Ich glaube nicht, dass ich nur CSS verwenden kann, weil ich die Farbe eines übergeordneten Elements ändere. Ich glaube nicht, dass Sie einen Elternselektor nur in CSS auswählen können. – user1754427

+0

Ich sehe..dann denke ich, jQuery ist der beste Weg nach vorne. –

2

JQuery

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

Siehe fiddle.

1

Wenn Sie jQuery dafür verwenden müssen, verwenden addClass() statt css():

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

Mit dem CSS:

.hoveredOver { 
    background-color: #fff; 
} 

JS Fiddle demo.

Referenzen: