Jquery “si ceci et si cela” puis de le faire
Ce devrait être si simple, mais il ne fonctionne pas pour moi. Je veux dire:
Si ce n'est pas la classe "current" ET si le corps de la classe n'est pas égal à "la maison", puis le faire....
Voici ce que je suis en train (entre autres choses) en vain. Seulement la première condamnation des œuvres.
$(".nav1 > ul > li").mouseleave(function() {
if ( (!$(this).hasClass("current")) || (!$(body).hasClass("home")) ){
$(this).find(".nav-overlay").show();
}
});
Ce que je fais mal? Merci!!!!
MISE À JOUR POUR PLUS DE CLARTÉ:
Je veux seulement montrer ".nav-overlay" lorsque les conditions suivantes sont remplies:
- Vous n'êtes pas sur la page d'accueil (body class="accueil")
ET - ".sur le nav 1 > ul > li" de la classe n'est pas égal à "actuel"
||
signifie "ou". &&
signifie "et".Vous dites "classe n'a pas d'égal"; vous voulez dire que l'ensemble de la valeur de l'attribut de classe? Ce sera un test pour 1 classe spécifique de la valeur dans la collection de classes.
Pour une raison quelconque, le && ne fonctionne que sur la page d'accueil. Ainsi, lorsque le corps a class="accueil", c'correctement ignore la fonction. Cependant, à l'intérieur d'une page, lorsque le corps a class="anythingelse" et le li class="current" - alors elle ne l'ignore pas la fonction.
OriginalL'auteur LBF | 2013-08-13
Vous devez vous connecter pour publier un commentaire.
Essayer
$("body")
et&&
:Ou de cette façon , il est plus court:
grand , de vous souhaiter la bienvenue!
OriginalL'auteur Cherniv
Si
body
est pas une variable, l'accès comme une balise HTML: ajouter des guillemets. Aussi,AND
est&&
au lieu de||
(qui signifieOR
):Si
body
est un objet jQuery, vous pouvez le faire directement... && !$body.hashClass(...)
.body
peut être une variable, il n'y a pas beaucoup de contexte.Bon point.
Je vous remercie. J'ai été incorrectement à l'aide de la || et aussi, comme @Cherniv suggéré, à l'aide de l' .c'est plutôt de .hasClass, semblait le fixer.
OriginalL'auteur Ionică Bizău