У меня есть отрывок кода, для вычисления ширины некоторых дочерних объектов и вместо того, чтобы объявить parentWidth и другие переменные в КАЖДОЙ функции.. Я пытаюсь создать Глобальные переменные, которые будут снова использованы.. но, не работа.
Вот часть моего кода:
$(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' );
});
});
К parentWidth, полю и переменным границы НЕ получает доступ 'каждая' функция (который у меня есть несколько из). Я попытался использовать живой (), livequery ().. и т.д. но, провал. Я знаю, вероятно, что-то простое, которое пропускает этот новичок.. таким образом, любая справка значительно ценится!!Спасибо! Кроме того, если у Вас есть какой-либо вход при вычислении процентов ширины на основе ширины родительских контейнеров и составления каждой границы элементов, поля и количества.. Я внимательно слушаю :D
ОБНОВЛЕНИЕ Не это: $ (документ) .ready (функция () {
parentWidth = $(this).parent().width();
$(".element.twoinone input").each(function() {
$(this).css( 'width',
(((parentWidth - (margin * 2)) - (border * 2)) / 2)
+ 'px' );
});
});
То же как это:
$ (документ) .ready (функция () {
$(".element.twoinone input").each(function() {
$(this).css( 'width',
((( $(this).parent().width() - (margin * 2)) - (border * 2)) / 2)
+ 'px' );
});
});
Когда вы объявляете это:
parentWidth = $(this).parent().width();
Вы не получаете ширину родительского элемента этого элемент (
), он использует документ
для this
, так как это контекст, в котором вы находитесь. Вам нужно получить ширину внутри функции, либо внутри каждой, либо как плагин, но не «глобально», как это.
parentWidth
не является глобальной переменной, она существует в функции document.ready
, но не является глобальной переменной для какой-либо функции.
За исключением случаев, когда вы объявили эту переменную перед document.ready
:
Что-то вроде этого:
var parentWidth;
$(document).ready(function(){
parentWidth = $(this).parent().width();
....
То же самое относится и к другим 2 переменным.
Попробуйте поместить переменные вне $ (document) .ready ()