Bonjour à tous,
je viens chercher un peu d'aide car je ne trouve pas de solution (après maintes essais et recherches)
J'affiche une liste d'annonces via php
Avec un système d'accordéon pour ouvrir/fermer les annonces (demande de mon client)
Tout fonctionne pour le mieux mais dès que j'ajoute le script suivant pour trier mes annonces, mon système d'accordéon ne fonctionne plus mais seulement après avoir effectué un tri de mes annonces, car au début tout fonctionne.
J'espère avoir été un peu prêt clair.
Quelqu'un saurait-il me dire pourquoi ce deuxième script perturbe le premier ??
Modifié par yaka93 (21 Jan 2014 - 17:51)
je viens chercher un peu d'aide car je ne trouve pas de solution (après maintes essais et recherches)
J'affiche une liste d'annonces via php
<div id="content">
<!-- début de boucle php -->
<div class="annonce">
<div><a class="moins" style="display: none;"></a><a class="plus"></a></div>
<div class="expand">... du contenu texte et image...</div>
</div>
<!-- fin de boucle php -->
</div>
Avec un système d'accordéon pour ouvrir/fermer les annonces (demande de mon client)
<script type="text/javascript">
$(document).ready(function(){
// accordeon
$('.moins').click(function(){
$(this).parent().parent().find('.expand').slideToggle("slow");
$(this).parent().find('.plus').css( "display","block" );
$(this).css( "display","none" );
});
$('.plus').click(function(){
$(this).parent().parent().find('.expand').slideToggle("slow");
$(this).parent().find('.moins').css( "display","block" );
$(this).css( "display","none" );
});
});
</script>
Tout fonctionne pour le mieux mais dès que j'ajoute le script suivant pour trier mes annonces, mon système d'accordéon ne fonctionne plus mais seulement après avoir effectué un tri de mes annonces, car au début tout fonctionne.
<script type="text/javascript">
$(document).ready(function(){
// trier par prix
var ascending = false;
$('#bt_budget').click(function(){
var sorted = $('.annonce').sort(function(a,b){
return (ascending == (convertToNumber($(a).find('.prix').html()) < convertToNumber($(b).find('.prix').html()))) ? 1 : -1;
});
ascending = ascending ? false : true;
$('#content').html(sorted);
});
var convertToNumber = function(value){
return parseFloat(value.replace('€',''));
};
});
</script>
J'espère avoir été un peu prêt clair.

Quelqu'un saurait-il me dire pourquoi ce deuxième script perturbe le premier ??
Modifié par yaka93 (21 Jan 2014 - 17:51)