Plugin JQuery : créer un setter?
Bonjour à tous.
J'ai créé un plugin JQuery, voici le code réduit au minimum :
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 26 27
|
(function($) {
$.fn.myPlugin = function(param, value) {
//On récupère les paramètres.
var params = {
click : false
}
if ($.isPlainObject(param)) {
params = $.extend(params, param);
} else if(param == "click" && typeof value == 'function'){
params.click = value;
}
//On parcourt les noeuds.
this.each(function() {
//Action du click :
$(this).click(function() {
if (params.click && typeof(params.click) == "function" ) {
params.click.call();
}
});
});
//Chaînage JQuery.
return this;
};
})(jQuery); |
Et un exemple de la manière dont je souhaite l'utiliser :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
$(document).ready(function() {
$("a").myPlugin({
click:function() {
alert("!");
}
});
$("a.test").myPlugin("click", function() {
alert("test");
});
}); |
Mon problème est que je n'arrive pas à modifier mon paramètre une fois que l'objet a été instancié : dans l'exemple ci-dessus, cliquer sur "a.test" m'affichera "!" et non "test".
Il y a un truc que je n'ai pas compris, manifestement! Si quelqu’un peut me mettre sur la voie, ce serait super cool.
J'ai pas trouvé grand chose sur le sujet sur le net.
Merci d'avance.