[JS] problème fonction

Résolu
Tralala8 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   -  
Tralala8 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   894
 
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   Statut Membre Dernière intervention   14
 
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   Statut Membre Dernière intervention   14
 
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