[JS] problème fonction

Résolu/Fermé
Tralala8 Messages postés 120 Date d'inscription mercredi 17 août 2011 Statut Membre Dernière intervention 12 février 2013 - 6 juil. 2012 à 01:49
Tralala8 Messages postés 120 Date d'inscription mercredi 17 août 2011 Statut Membre Dernière intervention 12 février 2013 - 6 juil. 2012 à 19:26
Bonjour,

Voila un moment que je me penche sur un script de pagination en javascript. Tout est censé fonctionner. J'ai cependant un problème d'appel à ma fonction.

D'abord, le code :
function paging(total,per_page,current){
	if(total>per_page){
		$('#paging').remove();
		$('#content-col').append('<div class="w12-16 tcenter" id="paging"></div>');
		paging=$('#paging');
		num_pages=Math.ceil(total/per_page);
		
		if(current>2){
			paging.append('<span id="first"><<</span>');
		}

		if(current>1){
			paging.append('<span id="prev"><</span>');
		}

		for(i=1;i<=num_pages;i++){
			if(i==current){
				paging.append('<span id="current">'+i+'</span>');
			}else{
				paging.append('<span id="'+i+'">'+i+'</span>');
			}
		}

		if(current<num_pages){
			paging.append('<span id="next">></span>');
		}

		if(current<(num_pages-1)){
			paging.append('<span id="end">>></span>');
		}
	}

	paginate(total,current,num_pages,per_page,1);

	$('#paging span').click(function(){
		click=$(this).attr('id');

		switch(click){
			case 'first': go=1; break;
			case 'prev': go=current-1; break;
			case 'current': go=current; break;
			case 'next': go=current+1; break;
			case 'end': go=num_pages; break;
			default: go=click; break;
		}
		
		paginate(total,current,num_pages,per_page,go);
	});
}

function paginate(total,current,num_pages,per_page,go){
	first_product=((go-1)*per_page)+1;
	last_product=go*per_page;
	rest=total-last_product;
	
	elem=$('#content-col div').first();

	for(i=1;i<first_product;i++){
		elem.hide();
		elem=elem.next();
	}

	for(i=1;i<per_page;i++){
		elem.show();
		elem=elem.next();
	}

	for(i=0;i<rest;i++){
		elem.hide();
		elem=elem.next();
	}

	paging(total,per_page,current);
}

Bon, c'est peut-être pas super optimisé, mais j'essaie d'abord de le faire fonctionner.

Le soucis, c'est que lorsque j'appelle ma fonction "paging" (dernière ligne), firebug me dit que "paging is not a function". Je comprends pas pourquoi vu qu'elle se trouve dans le même fichier juste au dessus.

Voila 2 bonnes heures que je creuse, en vain. Quelqu'un pourrait-il m'aider ?

Merci d'avance.

A voir également:

2 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
6 juil. 2012 à 09:11
si paging non trouvé ce n'est pas forcement qu'elle n'existe pas mais qu'elle contient peut etre une erreur.

Regarde dans ta console d'erruer JS , ou as tu bien mis tous les arguments entre ' ' lors de l'appel de la fonction pagination ??
0
Tralala8 Messages postés 120 Date d'inscription mercredi 17 août 2011 Statut Membre Dernière intervention 12 février 2013 14
6 juil. 2012 à 13:15
Voila ce que j'ai comme erreur js:
paging is not a function	
paging(total,per_page,current);


L'appel de la fonction pagination (dernière ligne de la fonction paging) :
paginate(total,current,num_pages,per_page,go);


Je sais que les variables transmises sont bonnes pour les avoir préalablement testées avec un alert. Par contre, il doit bien y avoir un bug quelque part car je viens de me rendre compte qu'en page 1, c'est le deuxième produit qui est affiché (je bosse pour l'instant à 1 produit par page).
0
Tralala8 Messages postés 120 Date d'inscription mercredi 17 août 2011 Statut Membre Dernière intervention 12 février 2013 14
6 juil. 2012 à 19:26
C'est bon j'ai résolu mon soucis.

En fait, c'est à cette ligne :
paging=$('#paging');

J'utilise déjà le terme "paging". Je l'ai laissé tombé et ça fonctionne nickel.
0