J'ai un extrait de code, pour calculer la largeur de certains éléments enfants et au lieu de déclarer la parentWidth et d'autres variables dans TOUTES les fonctions .. J'essaie de créer des variables globales à re -utilisé .. mais, ce ne fonctionne pas.jQuery Les variables globales ne sont pas accessibles par les fonctions
est ici une partie de mon code:
$(document).ready(function(){
parentWidth = $(this).parent().width(); // parent width in pixels
margin = parentWidth/100; // pixel equivalent of a 1% margin
border = 6; // 6px total border for each input field
$(".element.twoinone input").each(function() {
$(this).css('width',
(((parentWidth - (margin * 2)) - (border * 2))/2)
+ 'px');
});
});
Le parentWidth, les variables de marge et bordures ne sont pas accessibles par la fonction « chaque » (que j'ai multiple). J'ai essayé d'utiliser live(), livequery(), .. etc. mais pas de dés. Je sais que c'est probablement quelque chose de simple que cette noob est en train de dominer .. donc toute aide est grandement appréciée !! Merci! En outre, si vous avez une entrée sur le calcul des pourcentages de largeur à partir d'un conteneurs parents largeur et de la comptabilité pour chaque frontière éléments, la marge et qté, .. Je suis toutes les oreilles: D
MISE À JOUR est-ce pas : {
parentWidth = $(this).parent().width();
$(".element.twoinone input").each(function() {
$(this).css('width',
(((parentWidth - (margin * 2)) - (border * 2))/2)
+ 'px');
});
});
$ (document) .ready (function() La même chose que ceci:
$ (document) .ready (function() {
$(".element.twoinone input").each(function() {
$(this).css('width',
((( $(this).parent().width() - (margin * 2)) - (border * 2))/2)
+ 'px');
});
});
Que vous * * 'attendez this' pour être dans le calcul de la largeur de parent? –
Je m'attends à ce que 'this' soit l'élément J'utilise la variable IN .. Donc, lorsque vous utilisez parentWidth dans $ (". Element.twoinone input"), je veux 'this' == $ (". Element. twoinone input ") – revive
N'est-ce pas: parentWidth = $ (this) .parent(). width(); $ (". Element.twoinone input"). Each (function() { $ (this) .css ('width', (((parentLargeur - (marge * 2)) - (bordure * 2))/2) + 'px'); }); la même que celle-ci:. $ ("element.twoinone entrée"), chaque fonction (() {$ (ce) Css ('largeur', ((($ (ce) .Parent().width() - (margin * 2)) - (border * 2))/2) + 'px'); }); – revive