Bonjour à tous,
Je commence par vous donner mon code :
manager = {
getFunction : function(name, arguements, class) {
if(typeof(class) != 'undefined') {
if(typeof(arguements) == 'object') {
eval(class + '.' + name + '(\'' + arguements + '\')');
return;
}
eval(class + '.' + name+ '()');
return;
}
if(typeof(class) != 'undefined') {
eval(name + '(' + arguements + ')');
return;
}
eval(name + '()');
return;
},
}
La classe précédente avec le méthode "getFunction" permet de créer des fonctions "dynamiquement". D'ailleurs elle reste à améliorer car j'utilise abusivement eval(). Si vous avez une idée ? .
actions = {
closeButton : function(el) {
alert($(el).html());
},
}
La classe précédente, quant à elle, regroupe plusieurs fonctions donc dans cette exemple "closeButton".
$('*').live('click', function() {
if($(this).attr('class') != '') {
var el = $(this);
manager.getFunction('closeButton', el, 'actions');
}
return false;
});
Avec le code précédent, que j'ai simplifié, je créer une nouvelle fonction. J'arrive à obtenir la fonction avec en argument la variable "el" qui de coule de la ligne précédente.
Dans la fonction appelée (closeButton), je fait un "alert($(el).html());" mais j'ai l'erreur suivante :
"uncaught exception: Syntax error, unrecognized expression: [object Object]"
Pouvez-vous m'aider un peu car je ne vois pas pourquoi ça plante. De plus je ne suis pas encore assez bon en JS et accessoirement jQuery.
Merci,
Bien cordialement.
Configuration: Windows Vista
Firefox 3.5.3