Suivez les règles
Ceci est un superbe exemple des raisons pour lesquelles nous devons toujours coder selon la documentation, et non selon les possibilités. Hacks, ou de simples oublis comme celui-ci, seront éventuellement éliminés.
La bonne façon jQuery (vaut mieux css plaine) pour ce faire suit:
$("#something a").hover(
function() {
// $(this).addClass("hovered");
$(this).css("color", "red");
},
function() {
// $(this).removeClass("hovered");
$(this).css("color", "black");
}
);
Le $.fn.hover
method prend jusqu'à deux arguments et sert de sucre syntaxique pour les événements de pointeur plus explicite (souris). En fait, la méthode de vol stationnaire dans jQuery 2.1.0 était rien que ceci:
function(fnOver, fnOut) {
return this.mouseenter(fnOver).mouseleave(fnOut || fnOver);
}
Comprendre votre code et être concis
Comme vous pouvez le voir, la fonction fnOver
est appelée lorsque vous entrez dans l'élément, et encore quand vous sortez (si aucune autre méthode n'est fournie). Grâce à cette compréhension, nous pouvons configurer des instructions plus simples:
$("#something a").hover(function() {
$(this).toggleClass("hovered");
});
natif gagne presque toujours
En fin de compte, CSS de vanille est le chemin à parcourir. Le :hover
pseudo-classe a été around for a long time, et travaille avec le ciblage non seulement l'élément auquel il appartient, mais des éléments imbriqués ainsi:
#something a:hover {
background: red;
}
#something a:hover .icon {
animation: 2s rotate ease-out;
}
Avec quelque chose d'aussi largement soutenu que :hover
, je ne peux penser à rien de bon raison de l'éviter.
utiliser CSS natif, au lieu d'inventer des vélos – Darmen
je dois mettre cette _dynamically_ – myfreeweb