2010-04-19 4 views

Répondre

2

Essayez quelque chose comme:

$.fn.dimeBar = function(custom) { 
    var options = { 
    var1: 'test1', 
    var2: 'test2' 
    }; 

    if(sometest){ 
    var foo = 'var1'; 
    alert(options[foo]); // "test1" 
    } 

}; 

Sinon, cela peut être un peu plus en ligne avec la jQuery Plugin Development Pattern

(function($){ 
    $.fn.dimeBar = function(options){ 

    // defaults 
    options = $.extend({ 
     var1: "default", 
     var2: "hello world" 
    }, options); 

    // debug options 
    $.each(options, function(key, value){ 
     console.log(key+' is set to'+value);  
    }); 

    }; 
})(jQuery); 

$('#foo').dimeBar({var2: "hello kitty"}); 

// console output 
// var1 is set to default 
// var2 is set to hello kitty 
-3

Vous n'utilisez simplement: ....

si (sometest) { alerte (var1); } ....

Puisque vous avez déclaré les vars avant l'instruction if, ils seront disponibles depuis l'intérieur.

Si vous êtes préoccupé par la portée, si c'est dans un objet, vous devez utiliser: alert (this.var1);

+0

Mais il a besoin d'accéder par le nom de la variable ... – Warty

+0

je veux y accéder avec son nom de chaîne 'var1' – coure2011

+0

+1 cause -4 semble trop dur ici. il se peut qu'il ne réponde pas à la question, mais la réponse n'est pas le jour et la nuit non plus à la question. – Anurag

Questions connexes