Cela devrait être si simple, mais cela ne fonctionne pas pour moi. Je veux dire:
Si cela n'a pas la classe "actuelle" ET si la classe body n'est pas égale à "home", alors faites ceci ....
Voici ce que j'essaie (entre autres) en vain. Seuls les premiers travaux conditionnels.
$(".nav1 > ul > li").mouseleave(function() {
if ( (!$(this).hasClass("current")) || (!$(body).hasClass("home")) ){
$(this).find(".nav-overlay").show();
}
});
Qu'est-ce que je fais mal? Je vous remercie!
MISE À JOUR POUR LA CLARTÉ:
Je souhaite afficher ".nav-overlay" uniquement lorsque les conditions suivantes sont remplies:
Essayez $("body")
et &&
:
if ( (!$(this).hasClass("current")) && (!$("body").hasClass("home")) ){
//...
Ou de cette façon, il est plus court:
if ( !$(this).is(".current") && !$("body").is(".home") ){
//...
Si body
est pas une variable, accédez-y comme une balise HTML: ajoutez des guillemets. De plus, AND
est &&
Au lieu de ||
(Cela signifie OR
):
if (!$(this).hassClass("current") && !$("body").hasClass("home")) {
$(this).find(".nav-overlay").show();
}
Si body
est un objet jQuery, vous pouvez faire directement ... && !$body.hashClass(...)
.