alexflex25
Messages postés106Date d'inscriptionvendredi 29 septembre 2006StatutMembreDernière intervention 6 mars 2012
-
1 mai 2009 à 11:39
alexflex25
Messages postés106Date d'inscriptionvendredi 29 septembre 2006StatutMembreDernière intervention 6 mars 2012
-
4 mai 2009 à 18:37
Bonjour à tous.
J'ai un petit problème avec une de mes fonctions.
OBJECTIF DE LA FONCTION:
Ajouter des valeurs à l'attribut "onclick" des mes balise HTML ''
Voici un premier exemple qui fonctionne mais qui est limité
(les lignes à analyser sont en rouge)
function liste_onclick_boutons(){
//Liste des mes boutons
var inputs = $$('input');
//compteur de bouton
var compteur = 0;
//variable ajax0 pour le premier bouton
var ajax0 = '';
//variable action0 pour le premier bouton
var action0 = '';
//variable ajax1 pour le 2 bouton
var ajax1 = '';
//variable action1 pour le 2 bouton
var action1 = '';
//Pour chaque de ma page
for(var i=0; i et qu'il possede des attributs "ajax" et "action"
//exemple: '
if(inputs[i].type == "button" && $(inputs[i]).getAttribute('ajax') != null && $(inputs[i]).getAttribute('action') != null){
//suivant le numero de mon bouton
switch(compteur){
case 0:
//j'affecte la variable correpondante a mon bouton
ajax0 = $(inputs[i]).getAttribute('ajax');
action0 = $(inputs[i]).getAttribute('action');
//j'ajoute la valeur à la propriete onclick de mon bouton.
$(inputs[i]).onclick = function (){eval(gen_onclick(ajax0,action0));}
break;
case 1:
//j'affecte la variable correpondante a mon bouton
ajax1 = $(inputs[i]).getAttribute('ajax');
action1 = $(inputs[i]).getAttribute('action');
//j'ajoute la valeur à la propriete onclick de mon bouton.
$(inputs[i]).onclick = function (){eval(gen_onclick(ajax1,action1));}
break;
}
//j'incremente la valeur de mon compteur pour le bouton suivant
compteur++;
}
}
}
l'idée finale est d'arriver à quelque chose comme ceci:
function liste_onclick_boutons(){
var inputs = $$('input');
var compteur = 0;
for(var i=0; i
Si j'utilise ma fonction de la maniéré suivante tous mes boutons se retrouve avec les mêmes valeurs de "ajax" et "action" que le dernier bouton.
Arto_8000
Messages postés1044Date d'inscriptionlundi 7 mars 2005StatutMembreDernière intervention13 juillet 20107 1 mai 2009 à 14:34
Tu peux binder sur une fonction un contexte et des paramètres qui seront ajoutés automatique à son appel. Pour faire simple, la plus plupart du temps ce qui est utilisé est ceci (c'est tiré de la librairie prototype) :
function $A(iterable) {
if (!iterable) return [];
if (iterable.toArray) {
return iterable.toArray();
} else {
var results = []; for (var i 0, length iterable.length; i < length; i++)
results.push(iterable[i]);
return results;
}
}
que tu utilises par la suite comme ceci :
$(inputs[i]).onclick = function (ajax, action){
eval(gen_onclick(ajax,action));
}.bind(this, ajax, action)