function dlLink(title, currentArray, currentIndex, currentOpts)
{
var img = new Image();
img.src = 'Gallery/Wallpapers/' + title;
html = img.width + ' x ' + img.height + '<br />'
+ '<a class = "nav" href = "Gallery/Wallpapers/' + title + '" target = "_blank">Download</a><br />http://';
// set up default options
var defaults = {
login: '*************',
apiKey: '*******************************',
longUrl: 'http%3A%2F%2Fschnell.dreamhosters.com%2Fwallpapers.php%3Fwp=' + title
};
// Build the URL to query
var daurl = "http://api.bit.ly/v3/shorten?"
+ "&login=" + defaults.login
+ "&apiKey=" + defaults.apiKey
+ "&longUrl=" + defaults.longUrl
+ "&format=json&callback=?";
// Utilize the bit.ly API
$.getJSON(daurl, function(results) {
$('#fancybox-title').append(results.data["url"].substr(7));
});
if(img.complete)
return html;
}
Хорошо, смысл этой функции в том, что это обратный вызов Fancybox, который помещает HTML-контент в раздел title. В этом разделе я поместил разрешение изображения, ссылку для загрузки и ссылку bit.ly для возврата к изображению на этом веб-сайте - http://schnell.dreamhosters.com/wallpapers.php?page=12 Изначально у меня были проблемы XMLHTTPRequest с URL-адресом bit.ly, но мне кажется, чтобы решить эти.
Однако проблема сейчас в том, что мне нужна переменная html, чтобы иметь весь html-контент, который поступает в fancybox, до появления оператора return. Хотя может показаться, что все происходит до оператора return, jQuery выполняет функцию $ .getJSON () асинхронно, и поэтому не гарантируется, что в html будут содержаться данные до завершения dlLink. Мне нужен способ сделать так, чтобы порядок вещей происходил так, как показано в коде, чтобы запрос $ .getJSON и последующая функция обратного вызова всегда заканчивали то, что они делают, прежде чем перейти к оператору return.
Редактировать - я понял, что делать, и приведенный выше код работает правильно, как я хотел. Смотрите мой ответ ниже.