J'ai donc une liste non ordonnée que j'aimerais que jQuery surligne le lien actif de cette liste. J'ai des animations sur la liste pour mouseenter et mouseleave qui augmente la taille de la police quand un lien est survolé.Mettre en surbrillance des éléments actifs avec jQuery
Je peux obtenir les liens pour rester à leur taille et couleur augmentées en utilisant .unbind sur le mouseleave, mais quand j'essaye de re-lier le lien, les liens perdent tous leur surbrillance.
Voici mon code à ce jour:
$(document).ready(function() {
slide("#sliding-navigation", 22, 17, 175, .8);
});
function slide(navigation_id, font_out, font_in, time, multiplier) {
// Creates the target paths
var list_elements = navigation_id + " li.sliding-element";
var link_elements = list_elements + " a";
// Initiates the timer used for the initial sliding animation
var timer = 0;
// Create the beginning slide animation
$(list_elements).each(function(i) {
// updates timer
timer = (timer*multiplier + time);
$(this).animate({ marginLeft: "0" }, timer);
$(this).animate({ marginLeft: "15px" }, timer);
$(this).animate({ marginLeft: "0" }, timer);
});
// Creates the hover effect
$(link_elements).each(function(i) {
$(this).mouseenter(function() {
$(this).animate({ fontSize: font_out }, 200);
}),
$(this).mouseleave(function() {
$(this).animate({ fontSize: font_in }, 400);
}),
// Highlights active link
$('a').click(function() {
$('a.active').bind('mouseleave');
$('a.active').addClass('inactive');
$('a.active').removeClass('active');
$(this).removeClass('inactive');
$(this).addClass('active');
$(this).unbind('mouseleave');
});
}
Toute aide à ce serait grandement apprécié. Merci d'avance pour toute suggestion!
Chris
Merci pour la réponse de l'aide! Ceci est encore plutôt bogué, mais il permet d'obtenir l'effet désiré. Je suis en train d'examiner la fonction "live" que vous avez mentionnée, et il semble qu'il vaudrait mieux l'utiliser plutôt que de lier et de délier les choses. J'essaie toujours de comprendre tout cela ... Merci encore pour votre aide! –