Глобальные переменные jQuery не доступны функциями

У меня есть отрывок кода, для вычисления ширины некоторых дочерних объектов и вместо того, чтобы объявить 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' );
    });
});
1
задан revive 31 July 2010 в 04:31
поделиться

3 ответа

Когда вы объявляете это:

parentWidth = $(this).parent().width();

Вы не получаете ширину родительского элемента этого элемент ( ), он использует документ для this , так как это контекст, в котором вы находитесь. Вам нужно получить ширину внутри функции, либо внутри каждой, либо как плагин, но не «глобально», как это.

2
ответ дан 2 September 2019 в 22:33
поделиться

parentWidth не является глобальной переменной, она существует в функции document.ready, но не является глобальной переменной для какой-либо функции.

За исключением случаев, когда вы объявили эту переменную перед document.ready:
Что-то вроде этого:

var parentWidth;
$(document).ready(function(){
parentWidth = $(this).parent().width();
....

То же самое относится и к другим 2 переменным.

0
ответ дан 2 September 2019 в 22:33
поделиться

Попробуйте поместить переменные вне $ (document) .ready ()

0
ответ дан 2 September 2019 в 22:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: