2010-11-08 7 views
0
function getSelectData(id) { 
var value=''; 

    // set value to be the current selected value 
value = jQuery(id+" option:selected").val(); 

// change value whenever the box changes 
jQuery(id).change(function() { 
    value = jQuery(id+" option:selected").val(); 
}); 

console.log(value); 
return value; 

}obtenir variable globale, de la fonction `change`

Merci à @Hogan, il me aider mais je ne peux pas voulu résultat, comment je peux obtenir la variable value, fonction en dehors change, voici cet exemple http://jsfiddle.net/ZvuMh/, et chaque fois que je change la boîte de sélection, la valeur est a. Merci pour votre temps passé

+0

double possible de [Jquery, variable d'accès de la fonction] (http://stackoverflow.com/questions/4100524/jquery- access-variable-from-function) – Hogan

Répondre

1

Vous ne pouvez pas, sauf si vous le déplacez pour être une variable globale. En l'état, la ligne "console.log (value)" n'imprime la valeur que lorsque la fonction change() est appelée. (change() est appelé quand quelque chose change .... mais c'est long après que getSelectData() est retourné).

+0

Juste pour clarifier, comme vous l'avez "valeur" n'est pas un global. Si elle est déclarée au-dessus de "function getSelectData (id) {", elle le sera, et vous pourrez y accéder de n'importe où. Probablement un mauvais design, mais c'est le moyen le plus direct de le rendre accessible d'ailleurs. Votre ligne "console.log (value)", cependant, montrera seulement sa valeur AVANT que change() soit exécuté. – rob