Объект глобального массива Javascript не может быть прочитан

0

У меня есть несколько проблем, и я думаю, что это из-за того, как я объявляю массив. Я использую jQuery, и я хочу объявить глобальный массив, чтобы я мог использовать его элементы внутри своих функций. То, как я это делаю сейчас, когда я пытаюсь использовать элементы в функции, они ограничены. Я сделал консольный журнал массива и, похоже, показал, что в нем есть вещи (даже те вещи, которые я хочу), но затем, когда я выполняю функции jQuery на тех элементах, которые он мне сообщает

Невозможно прочитать свойство "верх" неопределенного

Кроме того, я много не использовал массивы в JS, только в C++, поэтому, возможно, проблема с моим синтаксисом? Вот грубая копия кода, который у меня есть:

var pigs = new Array();
pigs[0] = $('#foo');
pigs[1] = $('#bar');

$(document).ready(function(){
    console.log(pigs);
    var topCoord = pigs[0].offset().top;
});
  • 1
    $ ('# Foo') существует?
  • 1
    $('#foo') будет возвращать элемент перед document.ready
Показать ещё 3 комментария
Теги:
arrays

1 ответ

2
Лучший ответ

Я думаю, что $('#foo') и $('#bar') возвращают пустые объекты jQuery. Вы должны дождаться готовности DOM перед тем, как запросить его:

var pigs = new Array();
$(document).ready(function(){
    pigs[0] = $('#foo');
    pigs[1] = $('#bar');
    console.log(pigs);
    var topCoord = pigs[0].offset().top;
});
  • 0
    Если я назначу эти значения в этой функции, смогу ли я использовать эти объекты и значения в других функциях? Другими словами, если я изменю это в этой функции, это будет также изменено глобально, верно?
  • 0
    Да сэр. Добро пожаловать в Javascript ;-)
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню