J'essaie d'utiliser jquery pour afficher et masquer un div onclick, et bien que je ne reçoive aucune erreur, il ne montre ni ne cache quoi que ce soit non plus.jquery afficher/masquer div on click?
** EDIT - MISE À JOUR **
$(document).ready(function() {
$("#nav-inner a").click(function() {
var type = $(this).attr("class");
$("div.v1 > div").not("." + type).stop().hide().end().filter("." + type).stop().show();
return false;
});
});
Voici le jquery:
$(document).ready(function() {
if($("#nav-inner")) {
$("#nav-inner ul li a").click(function(evt) {
var type = $(this).attr("class");
var rowcount = 0;
$('div.v1 .vc').each(function(idx,el) {
if(type == 'typea') {
if($(el).hasClass('typea')) {
$(el).show();
} else {
$(el).hide();
}
}
});
});
}
});
Et voici le balisage:
<div id="page">
<div id="header">
<div id="nav">
<div id="nav-inner">
<ul class="nav-inner-li">
<li>
<a class="typea" href="#"><img src="/images/typea.png"></a>
<a class="typea" href="#">Type A</a>
</li>
</ul>
</div>
</div>
</div>
<div id="content">
<div id="content-content">
<div id="content-left">
<div class="v1">
<div class="vc">
<div class="typea">
<div class="title"> Title </div>
<div class="body"> Body </div>
</div>
<div class="typeb">
<div class="title"> Title 2 </div>
<div class="body"> Body 2 </div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
J'utilise toujours e.preventDefault() au lieu de fausse déclaration. Corrigez-moi si je me trompe, mais ne retourne pas false seulement annuler l'événement de l'élément courant? et preventDefault() arrête la chaîne d'événements? – fredrik
Merci ... Ça marche, en quelque sorte ... Sauf que j'ai besoin de tout cacher sauf les divs qui ont cette classe. Donc, en cliquant sur montre les div divs et cache tous les autres ... On dirait que c'est faire le contraire ...? – phpN00b
@fredrik: 'return false' est équivalent à' preventDefault() '** et **' stopPropagation() '. – cletus