Как я добавляю объекты к массиву в jQuery?

Сначала, я использую Ubuntu 12.04, также с новейшими драйверами Nvidia.

я имел ту же проблему, но придумал (для меня) подходящее решение. Из различных других сообщений я сделал эти шаги для получения моего двухмониторного выполнения установки (это не могло бы быть самым умным или лучшим решением, но оно работало на меня):

я открыл терминал, вошел

gksu nautilus

и переместился в "/etc/X11/xorg.conf" для удаления файла конфигурации.

я закрыл терминал, вновь открыл другой и использовал

sudo nvidia-settings

, чтобы сохранить следующие файлы правильно.

Теперь, единственный способ, которым я мог найти для включения обоих мониторов, состоял в том, чтобы выбрать TwinView и расположить мониторы, поскольку я хотел их к. Экран Seperate X не работал вообще.

я нажал "Save to X Configuration File" и вошел

/etc/X11/xorg.conf

, потому что путь отсутствовал (при удалении файла, где-то в другом месте вводят тот путь).

Перезапуск компьютер. Когда я сделал это, это теперь только отображает некоторое сообщение об ошибке, но по крайней мере мои дисплеи применимы. То, что я не люблю, имеет, "запускают панель" или независимо от того, что это называют на обоих экранах, я не нашел решение отключить его на моем вторичном экране. Но я могу жить с этим, я предполагаю...

я надеюсь, что помог Вам.

58
задан DᴀʀᴛʜVᴀᴅᴇʀ 26 March 2016 в 18:21
поделиться

2 ответа

Поскольку $. GetJSON является асинхронным, я думаю, что ваш код console.log (list.length); запускается до того, как ваш массив будет заполнен . Чтобы исправить это, поместите оператор console.log в свой обратный вызов:

var list = new Array();
$.getJSON("json.js", function(data) {
    $.each(data, function(i, item) {
        console.log(item.text);
        list.push(item.text);
    });
    console.log(list.length);
});
118
ответ дан 24 November 2019 в 18:50
поделиться

Вы выполняете запрос ajax, который является асинхронным, поэтому в журнале консоли отображается длина списка до того, как запрос ajax будет завершен.

Единственный способ добиться желаемого - изменить вызов ajax на синхронный. Вы можете сделать это, используя .ajax и передав asynch: false, однако это не рекомендуется, так как он блокирует пользовательский интерфейс до тех пор, пока вызов не вернется, а если он не вернется, пользователь должен выйти из браузера.

3
ответ дан 24 November 2019 в 18:50
поделиться
Другие вопросы по тегам:

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