2 votes

Changer la valeur d'une variable qui est déjà définie

Il s'agit peut-être d'une question très élémentaire, mais j'ai déjà essayé plusieurs choses et cela ne semble pas fonctionner.

J'ai cette var :

w = $("#el").width();

Et je veux changer #el La largeur de l'avion via la var . Ainsi, le réglage de la largeur, en utilisant la variable w sans réutiliser l'ensemble de la $("#el").width() . Comment puis-je faire ? J'ai déjà essayé ce qui suit :

w = 50;
w == 50;
w = "50px";
w == "50px";

Mais ceux-ci ne semblent pas fonctionner.

Je veux donc utiliser w dans une fonction permettant de définir #el de la largeur. Je ne veux donc pas utiliser $("#el").width() parce que je vais beaucoup l'utiliser. J'ai besoin d'utiliser cette variable.

5voto

Benjamin Gruenbaum Points 51406

.width() accepte un paramètre.

 $("#el").width(100);//set width to 100

4voto

sje397 Points 23619

Si vous faites tenir à w la fonction

var w = (function() {
   var $el = $("#el"); //cache the query selector to only use once
   return function(x){
       if(typeof x ==="undefined"){
          return $el.width();
       }
       return $el.width(x);
   };
})();

...alors vous pouvez le faire :

w();//get the width
w(50);//set the width

3voto

Matt Burland Points 18628

Votre variable n'est pas en direct . C'est une copie de la largeur au moment où elle a été attribuée. Changer la variable ne changera pas la largeur réelle.

Au lieu de cela, vous devez faire ceci :

$("#el").width(50);

2voto

TonyArra Points 2546
w = $("#el").width(); 

Transmet simplement la valeur de la largeur de el à w, pas la référence. Cela signifie que w détient un nombre entier égal à la largeur de el au moment où il fait cette déclaration.

Pour CHANGER la largeur de el, il suffit d'utiliser le paramètre de fonction :

$("#el").width(50); 

Non pas que l'utilisation de la fonction avec le paramètre change le type de retour de la fonction. $("#el").width(50); ne renvoie pas la nouvelle largeur, donc vous ne pouvez pas utiliser l'instruction w = $("#el").width(50); Pour mettre à jour à la fois votre variable ET la largeur réelle basée sur cette variable, il faut procéder comme suit :

w = 50;
$("#el").width(w);

1voto

PSR Points 14768

voir ici

var w = $("#el").width();

 $("#el").width(w);

vous pouvez le faire

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X