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 12/09/2011, 21h23   #1
Invité de passage
 
Inscription : avril 2008
Messages : 7
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 7
Points : 4
Points : 4
Par défaut Appel d'une fonction lors d'un évenement

Avec la petite fonction ci-dessous, j'ai un petit problème (je suis un peu rouillé du javascript) et je ne sais plus comment le résoudre.
J'ai simplifié la fonction, elle ne sert pas à grand chose comme ca, c'est juste pour trouver la solution.
Il faudrait que pour les 3 boutons créés le 1er me fasse un alert "1", le 2eme "2" et le 3eme "3". Or là, ils me sortent chacun "3", la derniere valeur de j...
Comment faire ?
Merci


Code :
1
2
3
4
5
6
7
$( init );
function init() {
	for ( var j=0; j<3; j++ )
	{
		$('<button>Info</button>').appendTo( '#content' ).click( function(){alert(j);} );			
	}
}
dragongia_fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 21h45   #2
Membre Expert
 
Avatar de Willpower
 
Homme Boris Dessy
sans emploi
Inscription : décembre 2010
Messages : 871
Détails du profil
Informations personnelles :
Nom : Homme Boris Dessy
Localisation : Belgique

Informations professionnelles :
Activité : sans emploi

Informations forums :
Inscription : décembre 2010
Messages : 871
Points : 1 380
Points : 1 380
bonjour,

je ne m'y connais pas trop en jQuery, donc il existe p-ê plus simple que la solution que je vais te proposer:

Code :
1
2
3
4
5
6
function myContext(value){
	return function(){alert(value);};
}
for ( var j=0; j<3; j++ ){
	$('<button>Info</button>').appendTo( '#content' ).click( myContext(j) );			
}
Willpower est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 21h52   #3
Invité de passage
 
Inscription : avril 2008
Messages : 7
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 7
Points : 4
Points : 4
Merci, ca fonctionne !
dragongia_fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 22h16   #4
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 779
Points : 4 779
Bonsoir,
il existe aussi
Code :
1
2
3
4
5
6
7
function init() {
  for ( var j=0; j<3; j++ )	{
    (function(param){
      $('<button>Info</button>').appendTo( '#content' ).click( function(){alert(param);} );
    })(j);
  }
}
sans passer par une autre fonction, mais c'est bien le diable s'il n'existe pas une solution jQuery !
non testée
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 22h44   #5
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

Solution jQuery :

Code :
1
2
3
4
5
6
7
8
$.each([1, 2, 3], function(i, item){
	$("<button/>", {
		"text": "Info",
		"click": function(){
			alert(item);
		}
	}).appendTo("#content");
});
__________________

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 00h07.


 
 
 
 
Partenaires

Hébergement Web