Я использую плагин jQuery Populate для преобразования данных в большую форму. В нем есть раскрывающийся список типов шрифтов. (arial, helvetica и т. д.). Клиент хотел, чтобы я добавил шрифты Google к вариантам выбора в раскрывающемся списке, поэтому я использую вызов через JSON, чтобы получить имена шрифтов Google и добавить их в список. Они кажутся великолепными. Проблема в том, что заполнение, похоже, хочет уйти до завершения вызова JSON, поэтому оно не заполняется правильно. Вот порядок вещей, которые я делаю.
$(document).ready(function()
1. Make the JSON call and use append to add GF to the lists on the page as needed. This works
2. $('#loginForm').populate(the data from the database); This works as long as I am not trying to match a GF.
)
Кажется, я не могу заставить население ждать или знать, когда запускать ПОСЛЕ того, как JSON полностью заполнен. Если шрифт находится в исходном списке (helvetica), он заполняется. Если это от GF, то нет. Мне кажется, что он не может найти совпадение, потому что он еще не заполнен. Любая помощь? Спасибо всем!
РЕДАКТИРОВАТЬ: с кодом ниже
var url = 'https://www.googleapis.com/webfonts/v1/webfonts?key=key';
$.ajax({
url: url,
dataType: 'json',
success: function(fonts){
for (var i = 0; i < fonts.items.length; i++) {
$('#main_font')
.append($("<option></option>")
.attr("value","GF-"+fonts.items[i].family)
.text("GF-"+fonts.items[i].family));}
},
});
//I put it in the ajaxStop because it does seem to wait for the menu to build above
$(document).ajaxStop(function () {
$('#loginForm').populate(<?php echo $list; ?>);
})
//My drop down look like this
<select name="main_font" id="main_font" class="required fontP">
<option value="" selected="selected">Select</option>
<option value="arial">Arial</option>
<option value="verdana">Verdana</option>
<option value="helvetica">Helvetica</option>
<option value="times new roman">Times New Roman</option>
</select>
Если заполняемая информация, поступающая в populate (), является одним из стандартных шрифтов, она заполняется. Если это один из шрифтов Google, который заполняется динамически, этого никогда не происходит. Я делаю это все время с динамически создаваемыми раскрывающимися списками, но никогда с данными, поступающими из запроса ajax.