jQuery passez fonction
Salut, je suis en train de créer une fonction jquery qui s'estompe toutes les autres divs lorsque l'un des div est cliqué. Mon code ne fonctionne pas et je ne suis pas sûr de la façon d'écrire correctement. Voici ce que j'ai à ce jour:
$("#slider div.popup").hover(
var ind = $(this).index();
$("#slider div.popup").each(function() {
if ($(this).index() != ind) {
//fades all other .popup divs
$(this).animate({
opacity: 0
});
}
}), $("#slider div.popup").each(function() {
if ($(this).index() != ind) {
//unfades all other .popup divs
$('span', this).animate({
opacity: 1
});
}
}
));
Il est aussi un exemple ici : http://jsfiddle.net/7j3mk/
Quelqu'un peut-il me donner des indications sur la façon d'obtenir ce code de travail?
Votre syntaxe JavaScript n'est pas correct: Uncaught SyntaxError: Unexpected token var: Ici est une version corrigée: jsfiddle.net/fkling/7j3mk/2 Cependant, il semble que les événements de la souris ne sont pas élevés si l'élément est transparent, alors je me demandais comment vous souhaitez afficher une autre div, après qu'ils ont été cachés.
OriginalL'auteur LostLin | 2011-04-11
Vous devez vous connecter pour publier un commentaire.
À côté de la mauvaise syntaxe à utiliser pour le décollage de la méthode (il prend deux fonctions en tant que paramètres)
Vous devez utiliser le
.non()
docs méthodemis à jour exemple à http://jsfiddle.net/gaby/7j3mk/11/
Non, il n'est pas pour utiliser le
not
méthode, il y a beaucoup de façons différentes de faire la même chose.hmm non je ne sais pas si cela devrait être mentionné dans une nouvelle question, mais si je souris à une autre div toutes les autres divs flash dans la vue avant de disparaître à nouveau.Je comprends que c'est juste la façon dont la fonction fonctionne parce que sur l'événement mouseout. Est-il une manière douce de faire ce que les autres divs ne clignote pas?
oui bien-sûr, il existe d'autres moyens.. C'était la meilleure traduction que j'ai pu suggérer tat a fait ce que l'OP a été demandé.
mise à jour de réponse. Je suis également en utilisant le
stop()
méthode pour arrêter l'animation en cours. Sinon, ils sont en file d'attente et donc il ne le scintillement. (ajout de mise à jour jsfiddle ainsi)OriginalL'auteur Gabriele Petrioli
essayez ceci: violon
OriginalL'auteur Neal
Il y a plusieurs erreurs dans ton code:
ind
est défini dans la première fonction, vous avez besoin de la définir dans le second aussi.span
sélecteur dans la seconde fonction qui maintient si de trouver tous les éléments.Code de travail: http://jsfiddle.net/7j3mk/7/
OriginalL'auteur Guffa
Vous utilisez la fonction hover mal. Vous passez deux fonctions pour le décollage, le premier est pour la souris à l'entrée, et la deuxième pour la souris. Le hover fonctionne-ce comme ceci:
Vous ne pouvez pas avoir tout sur le code à l'intérieur de la hover() en plus de ces deux fonctions, dans votre exemple, la ligne
Est à l'origine de l'erreur. Je vous suggère de lire encore sur hover() sur le jQuery Docs
OriginalL'auteur Jack Franklin
Pourquoi ne pas essayer quelque chose comme
À l'intérieur de votre vol stationnaire de la fonction. Jetez un oeil à la doc - http://api.jquery.com/hover/ - vous passer 2 fonctions - un être exécuté 'onmouseover" et l'autre, à être exécuté 'onmouseout'.
OriginalL'auteur Tom Walters
http://jsfiddle.net/RL6s8/:
EDIT:
Ajouté
.stop(true,true)
et500
ms à l'jQuery pour éliminer infini de files d'attente.OriginalL'auteur Code Maverick