Hi, ich bin gerade dabei mich mit der Konstruktion von jQuery Plugins zu beschäftigen und bin da auf ein javascript-speziefisches Problem gestoßen:
Angenommen ich habe ein globales Objekt was so aussieht:
Den Wert von "ipAddress" möchte ich nun in einem selbstgeschriebenen Plugin verwenden:
Aufruf des Plugins:
Beispielcode des Plugins:
In changeValue() will ich den Wert von globals.status.network.ipAddress ändern, fragt sich nur: Wie bekomme ich eine Referenz zu dieser Variable? Ich möchte sie ja nicht hart kodieren, da ich das Plugin für unterschiedliche Werte benutzen will.
Mein Ansatz bis jetzt war, die Variable als ganzen String zu übergeben und dann mit eval("o.value") im Pluginkontext den Wert auszulesen. Jedoch wird das unübersichtlich, wenn es sich bei dem Wert um einen Array handelt und ich iterieren muss oder so. Für mich sieht die eval() Methode auch nicht wirklich sauber aus.
Habt ihr eine andere Idee, wie ich an die Referenz, als auch den den Wert ohne eval() komme?
MFG
Angenommen ich habe ein globales Objekt was so aussieht:
Code:
var globals = {
status: {
network: {
"ipAddress" : "192.168.1.10"
}
}
}
Aufruf des Plugins:
Code:
$("#ip-address").changeValue({
value: globals.status.network.ipAddress,
});
Code:
(function ( $ ) {
$.fn.changeValue = function ( options ) {
var defaults = {
value: "0.0.0.0",
};
var o = $extend({}, defaults, options);
// do something with the value
function doSomething(){
}
function changeValue(){
/*
* insert solution here
*/
}
}
})(jQuery);
Mein Ansatz bis jetzt war, die Variable als ganzen String zu übergeben und dann mit eval("o.value") im Pluginkontext den Wert auszulesen. Jedoch wird das unübersichtlich, wenn es sich bei dem Wert um einen Array handelt und ich iterieren muss oder so. Für mich sieht die eval() Methode auch nicht wirklich sauber aus.
Habt ihr eine andere Idee, wie ich an die Referenz, als auch den den Wert ohne eval() komme?
MFG