jQuery bascule (Cliquez pour afficher un div, tout en cachant les autres)
L'idée de base est que j'ai un tas de div dans lequel chacun peut être basculé (afficher/masquer).
Quand un div est basculé j'aimerais que d'autres div qui sont actuellement affichés à cacher, donc uniquement en permettant à un seul div pour être affiché à la fois.
En outre, je tiens à être en mesure de cliquer à l'extérieur de l'élément à masquer l'open div ainsi.
Juste pour rendre les choses plus claires, j'ai fourni un exemple qui fait actuellement tout ce que je veux à l'exception de la fermeture d'un div lors de l'ouverture d'un autre (un Seul div ouvert à la fois la fonctionnalité):
JS:
$(document).ready(function(){
$('div.dropdown').each(function() {
var $dropdown = $(this);
$("a.dropdown-link", $dropdown).click(function(e) {
e.preventDefault();
$("div.dropdown-container", $dropdown).toggle();
return false;
});
});
$('html').click(function(){
$("div.dropdown-container").hide();
});
});
HTML:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<div id="dropdown-1" class="dropdown dropdown-processed">
<a class="dropdown-link" href="#">Options</a>
<div class="dropdown-container" style="display: none;">
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</div>
</div>
<div id="dropdown-2" class="dropdown dropdown-processed">
<a class="dropdown-link" href="#">Options</a>
<div class="dropdown-container" style="display: none;">
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</div>
</div>
<div id="dropdown-3" class="dropdown dropdown-processed">
<a class="dropdown-link" href="#">Options</a>
<div class="dropdown-container" style="display: none;">
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</div>
</div>
- Ne accordéon faire ce que vous voulez? jqueryui.com/demos/accordion
- Des sons comme ça, sauf qu'il n'a pas de fermeture automatique lorsque vous cliquez sur un autre.
- Il y a un paramètre pour que, permettez-moi de le trouver.
- Désolé, l'accordéon est un peu beaucoup pour ce que je suis à la recherche pour. Je préfère le garder est léger sans avoir besoin de plug-ins.
- Ma réponse va faire tout ce que vous avez demandé, sans fermer le menu lorsque vous cliquez sur un élément de menu (qui d'autres réponses ont manqué...).
Vous devez vous connecter pour publier un commentaire.
En gros, vous avez juste besoin de masquer tous les divs à l'exception de celui basculé:
JS:
HTML:
Essayez ce qui suit:
DÉMO
Je l'ai fait aussi court que possible! Amusez-vous bien!
Démo: http://jsfiddle.net/NFTFw/60/
Vous pouvez utiliser par intelligent et facile à mettre en œuvre par l'aide de code ci-dessous :
JS:
HTML:
De travail exemple de Lien : http://jsfiddle.net/NFTFw/1901/
Ici, vous allez:
Note l'ajout d'une ligne:
Nous venons de masquer toutes les choses avant le basculement de la div que nous voulons.
http://jsfiddle.net/NFTFw/40/
.hide()
vérifier d'abord et ensuite la fortune choix ne permet pas de résoudre ce problème.Ce code devrait faire l'affaire, sans l'utilisation de bibliothèques supplémentaires. 🙂
http://jsfiddle.net/NFTFw/42/