Bonjour,
Voila je rencontre un petit problème avec mon code. j'ai suivi le tuto portfolio en grille, j'ai déjà eu un soucis avec le code, on m'a conseillé de faire autrement que le tuto mais je suis maintenant a nouveau bloqué sur le code..
Décrivez ici votre code ou ce que vous cherchez à faire
jQuery(document).ready(function($){
var $active=false;
$('.work').click(function(e){
e.preventDefault();
var $work = $(this);
var $detail = $work.parent().find('.row-detail');
if($active){
$active.remove();
}
$detail.html($('.work_detail', $work).html());
$active = $detail;
});
});```
### Ce que je veux
le soucis quand je clique sur une des images, il affiche bien les details du projet, quand je reclique dessus, il s'enleve bien.. sauf que je ne peux plus cliquer sur autre chose apres cette manipulation...
;)
jQuery(document).ready(function($){
$('.work').click(function(e){
e.preventDefault();
$(this).toggleClass('active');
var $detail = $(this).parent().find('.row-detail');
if($(this).hasClass('active')){
$detail.html($('.work_detail', $(this)).html());
} else {
$detail.html('');
}
});
});
:) tu repostes ?
ton code ne va pas, ta variable $active ne peut être remove, ce n'est pas du dom....
, renvoie ton html, juste de la section concernée
oui je reposte , il faut bien que j'apprennes de mes erreurs ;)
du coup ca s'ouvre bien et ca se ferme bien, mais que sur une seule image :/
<div class="container">
<?php for($j = 1;$j <= 3; $j++): ?>
<div class="row">
<?php for($i=1; $i <= 4; $i++): ?>
<article class="col-xs-3 work">
<img src="http://lorempicsum.com/futurama/220/153/<?= $i; ?>" alt=""/><br>
<strong>Ma Réalisation<?= $j. '-'.$i ?> </strong><br>
<em>Wordpress</em>
<div class="work_detail">
<hr/>
<div class="row">
<div class="col-xs-8">
<img src="http://lorempicsum.com/futurama/460/250/1"/>
<img src="http://lorempicsum.com/futurama/460/250/2"/>
<img src="http://lorempicsum.com/futurama/460/250/3"/>
</div>
<div class="col-xs-4">
<h2>Mon Projet <?= $j. '-'.$i ?></h2>
<p><em>wordpress</em></p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum</p>
</div>
</div>
<hr/>
</div>
</article>
<?php endfor; ?>
<div class="row row-detail"></div>
</div>
<?php endfor; ?>
</div>
bon, g lu de travers mais je ne vois aucun élément "active"...
tu veux faire quoi exactement ?
Je voudrais que quand je reclique sur l´image, Celle ci se referme, Ca marche mais que sur une seule image
:) oui ça, g vu, mais ton js veut rien dire
je commente :
jQuery(document).ready(function($){
var $active=false; // là tu dis qu'une variable $active doit être false par default ; c un bool
$('.work').click(function(e){ // ici tu définis une fonction au clique sur ts les ".work"
e.preventDefault();
var $work = $(this);
var $detail = $work.parent().find('.row-detail');
if($active){ // ici tu demandes si $active est true (pour moi ya un pb de scope mais passons... $active sera à false c obligé... bref ça sert à rien
$active.remove(); // action impossible, d'une part à cause de la condition précédente et d'autre part tu veux remove un bool : impossible
}
$detail.html($('.work_detail', $work).html());
$active = $detail; // oui tu transforme ton bool en $element jquery et alors ?
// on arrive à la fin de ton clique et $active n'a servi à rien
});
});
Justement mon active prend u'e valeur quan dje clique sur l´image, et la condition de verification sert a voir il est rempli pour pouvoir le masquer
hummm, ok ;) autant pour moi, c vrai ça peut fonctionner, mais c po terrible... l'utilisation de variables globales n'est a utilser qu'avec parcimonie....
utilises plutôt un toogle de class et tu vérifies le hasclass...
en js, C'est pas mon fort ...
Mais du coup t´as pas une solution a mon soucis ? les details et s´affiche mais ca fonctionne que sur un seul element et pas sur tous ..