Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/04/2011, 17h44   #1
Invité de passage
 
Benoit
Inscription : novembre 2009
Messages : 6
Détails du profil
Informations personnelles :
Nom : Benoit

Informations forums :
Inscription : novembre 2009
Messages : 6
Points : 2
Points : 2
Par défaut Comment puis-je interrompre une boucle each ?

Bonjour,

Voila j'ai un petit problème avec jQuery.

J'ai une fonction nommée, dans laquelle j'exécute un each(). Je souhaiterai que cette fonction nommée renvoie "a" ou "b", selon si le test (défini dans mon each) est vérifié ou non.

Un petit exemple (très simplifié) :


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
alert(MaFonction());
 
function MaFonction() {
 
$('mon_selector').each(function() {
 
if(conditon) {
return a;
}
 
});
return b;
}
Systématiquement, MaFonction() retourne "b". Comment faire pour que MaFonction() me retourne "a" si la condition est vérifiée ?

Un grand merci par avance !
bnohit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 18h00   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 806
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 806
Points : 35 803
Points : 35 803
Citation:
J'ai une fonction nommée, dans laquelle j'exécute un each()
Le return a se fait dans la fonction anonyme passée dans le each et tu ne récupères nulle part cette valeur retournée.
Le plus simple serait de passer par une variable :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
alert(MaFonction());
 
function MaFonction() {
 var retour = b;
$('mon_selector').each(function() {
 
if(conditon) {
retour = a;
return;
}
 
});
return retour;
}
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/04/2011, 09h07   #3
Invité de passage
 
Benoit
Inscription : novembre 2009
Messages : 6
Détails du profil
Informations personnelles :
Nom : Benoit

Informations forums :
Inscription : novembre 2009
Messages : 6
Points : 2
Points : 2
Ok, merci beaucoup

Donc je n'ai plus qu'a faire une variable globale dans ma fonction, pour conserver mes états... puis retourner cette dernière en fin de traitement
Pas super élégant mais bon, si il est pas possible de récupérer le retour d'une fonction anonyme, pas trop le choix.
bnohit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2011, 22h28   #4
Rédacteur
 
Avatar de danielhagnoul
 
Homme Daniel Hagnoul
Étudiant perpétuel
Inscription : février 2009
Messages : 3 221
Détails du profil
Informations personnelles :
Nom : Homme Daniel Hagnoul
Âge : 61
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant perpétuel
Secteur : Enseignement

Informations forums :
Inscription : février 2009
Messages : 3 221
Points : 6 767
Points : 6 767
Bonsoir

Une boucle each ne peut être interrompue que par un return false !

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<script>
	$(function(){
		function maFonction(){
			var retour = "Je suis b";
 
			$("*").each(function(i, item){
				console.log(i, item);
 
				if (true){
					retour = "Je suis a";
 
					/*
					 * Une boucle each ne peut être interrompue
					 * que par un return false !
					 */
					return false;
				}
			});
 
			return retour;
		}
 
		console.log(maFonction());
	});
</script>
__________________

FAQ jQuery

Mon cahier d’exercices sur jQuery & Co

Si un message vous a aidé ou vous semble pertinent, votez pour lui !
danielhagnoul est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h46.


 
 
 
 
Partenaires

Hébergement Web