11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

voilà j'ai un petit soucis pour cibler une div.
En cliquant sur .voir-plus-moins cela doit ouvrir la .suite


<div class="article">
	<div class="flex_blox">
		<div class="img">
			<img src="">
		</div>
		<div class="txt">
			<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
			tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
			</p>
			<div class="voir-plus-moins">En voir +</div>
		</div>
	</div>
	<div class="suite">
		<p>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>
<script> 
	$('.suite').hide();
    $('.voir-plus-moins').click( function(e) {
        $(this).text(($(this).text() === 'En voir +' ? 'En voir -' : 'En voir +'));
        $(this).next('.suite').slideToggle('slow');
        e.preventDefault();
    });
</script>


mon soucis est le suivant.
Je n'arrive pas à cibler la div suite.
J'utilise une class parce que dans mon fichier j'ai plusieurs fois cette action à répéter mais une à la fois.

Auriez vous des pistes pour m'aider, svp ?

Merci à vous.
Modérateur
Et l'eau,

Tu es atteins de la divite aïgue.... (ton code n'est fait que de <div>. Or tu peux faire plus élégamment...)

Essaie en faisant ça :

$('.suite').hide();
$('.voir-plus-moins').click( function(e) {
    $(this).text($(this).text() === 'En voir +' ? 'En voir -' : 'En voir +');
    $(this).closest('.article').find('.suite').slideToggle('slow');
    e.preventDefault();
});

Si tu en as plusieurs dans la page :

$('.suite').hide();
$('.voir-plus-moins').each(function(){
    $(this).click( function(e) {
        $(this).text($(this).text() === 'En voir +' ? 'En voir -' : 'En voir +');
        $(this).closest('.article').find('.suite').slideToggle('slow');
        e.preventDefault();
    });
});

* code fait de tête, je peux m'être trompé.
Modifié par niuxe (22 May 2020 - 12:27)