À l'aide de JQuery comment afficher et masquer les différents div à l'événement onClick
Je voudrais afficher un div basé sur l'événement Onclick d'un lien.
Cliquez d'abord - Afficher div1
Deuxième Clic - Masquer le reste de la div et de Montrer div2
Troisième Clic - Masquer le reste de la div et de montrer div3
Quatrième Cliquez - Masquer le reste de la div et de montrer div1 => répéter la boucle et s'en va..
Code Suit:
<div class="toggle_button">
<a href="javascript:void(0);" id="toggle_value">Toggle</a>
</div>
<div id='div1' style="display:none;">
<!-- content -->
</div>
<div id='div2' style="display:none;">
<!-- content -->
</div>
<div id='div3' style="display:none;">
<!-- content -->
</div>
Jquery Code :
$(document).ready(function() {
$("#toggle_value").click(function(){
$("#div1").show("fast");
$("#div2").show("fast");
$("#div3").show("fast");
});
});
Le code ci-dessus montre tous les divs sur cliquez d'abord sur lui-même, mais il doit afficher div1 sur cliquez d'abord comme mentionné.
OriginalL'auteur Webrsk | 2009-05-27
Vous devez vous connecter pour publier un commentaire.
Je vais essayer de mon coup.
EDIT:
Après la deuxième cependant, pour éviter une variable globale, il est préférable d'effectuer les opérations suivantes
J'ai raté le point il à la parcourir tout le temps. Fixe.
Artem alors qu'il a été fonctionne correctement lorsque le var est mondial, après j'ai essayé la récente posté le code qu'il cesse de fonctionner ..
Cela suppose que "#div" + compteur est en fait la prochaine div à afficher. C'est exactement la même contrainte de vous critiquer dans ma réponse. Vous comptez sur la fiabilité de noms, je m'appuie sur l'ordre du document. Où est la différence?
Tout d'abord, il l'a été décrit dans la question. Et deuxièmement, il pourrait être facilement modifié pour utiliser la cartographie tableau de chaînes de caractères avec des divs noms. Alors que votre solution est plus étroit cas. @Webrsk: Merci pour indiquer une erreur. A été résolu. Et pour ceux qui aime downvote, s'il vous plaît être gentil et explique-toi, je peux comprendre en bas à droit de vote de complètement inutile de répondre, mais quel est le problème ici?
OriginalL'auteur Artem Barger
Vous devez ajouter un compteur dans la fonction.
Merci Peter . Et comme peirix mentionné il ya besoin de montrer le premier div comme une boucle.Mais dans ce 4ème clic, il permet de masquer tous les divs plutôt que de montrer la première div.
Yep ce code est de la merde.
C'est l'une des solution différente et de travailler si nous changeons le cas d'autre à $('#div2').hide(); $("#div").afficher("fast"); $('#div1').hide(); compteur=1;
OriginalL'auteur Peter Stuifzand
Comment à ce sujet
Exemple de travail ici - ajouter /modifier à l'URL pour modifier le code
et HTML
Cela pourrait facilement être enveloppé dans un plugin
OriginalL'auteur Russ Cam
Un moyen simple serait d'introduire une variable qui a permis de suivre les clics, donc quelque chose comme ceci:
OriginalL'auteur ilivewithian
Ma solution est un peu différent - je le ferais dépend de l'état de la vrd à l'heure actuelle (au clic). Voir ci-dessous pour ce que je veux dire par là.
Juste pour vous avertir - je n'ai pas testé ce code 🙂
Selon les indications suivantes pour la détermination de la visibilité: http://docs.jquery.com/Frequently_Asked_Questions#How_do_I_determine_the_state_of_a_toggled_element.3F
Espère que cela aide
Bien que j'avais une autre question, et non pas ce qui était demandé. Je l'ai pris plus de dire qu'il n'y avait que les 3 divs, et la div noms ne seraient pas normalement être numérotées et peuvent être des noms réels. Je prends votre point cependant.
OriginalL'auteur Mark Embling
Je préfère utiliser "filtre" de la méthode et la rendre un peu plus facile de travailler avec compteur:
OriginalL'auteur Alexander Ulizko
Je serais probablement faire quelque chose comme: (ce qui suit suppose tous vos
<div>
s sont dans un conteneur avec l'id "conteneur")ne pensez-vous pas qu'il y est plus de divs dans le récipient que décrit?
Penser à ce sujet, vous avez raison. D'autre part, si elles sont présentées de façon séquentielle dans un ordre particulier, pourquoi ne pas les mettre dans cet ordre particulier? Au lieu de créer des "ordonné" id attributs pour un non ordonnée ensemble d'éléments.
Il pourrait certains contrainte de conception.
Pourrait être. Otoh, que, la plupart du temps vous écrire du code JavaScript, vous pouvez aussi contrôler le HTML processus de génération. La commande des divs la bonne façon ne devrait pas être trop compliqué, et la question implique qu'ils le sont déjà. Eh bien... si ce n'est pas possible, la solution ci-dessus n'est, certes, pas de travail.
OriginalL'auteur Tomalak
L' .fonction de bascule en jQuery prend un certain nombre d'arguments des fonctions, de sorte que le problème est déjà résolu. Voir les docs sous Événements.
OriginalL'auteur solsson
Ils sont dans l'exemple. Ses comme de dire que si ils ne sont pas sur la même page? Ce qui si elles sont des zones de texte. Si vous exécutez ce sur l'iPhone?
Drôle O_o. Dans l'exemple, vous avez le raccourcir exemple de code, qui, je crois, dans la vraie beaucoup plus compliqué en général, de sorte que votre code vous permet de masquer tous, de frère, de n'importe quoi.
OriginalL'auteur Antony Carthy
utiliser mon deuxième solution sur cette page, plutôt...
J'ai édité ce devrait maintenant fonctionner...
OriginalL'auteur Antony Carthy
Vous devez d'abord ajouter une requête de base de fichier:
Puis vous devez ajouter le code suivant:
Ajoutez le code ci-dessus dans la partie en-tête et le code ci-dessous dans la partie de corps.
Le code est prêt pour les différentes cliquez sur l'image pour afficher et masquer div.
OriginalL'auteur Ramesh Prajapati
OriginalL'auteur Rajesh