У меня есть функция здесь, которая проверяет, если изображение имеет размеры 100 на 100 пикселей, и если это так возвращает истинуУстановки логического возвращаемого значения вызова функции JQuery
function checkDims(url) {
var valid = $("<img/>").attr("src", url).load(function() {
s = { w: this.width, h: this.height };
if (s.w == 100 && s.h == 100) {
return true;
}
else {
return false;
}
});
return valid;
}
Я хочу, чтобы установить переменный действительный, который проверяет с помощью .load function to get the image size of a remote URL, и я хочу, чтобы он вернул true или false соответственно. Я знаю, что настраиваю его на объект jQuery, но хочу получить результаты от внутренней функции.
Я попытался сделать:
function checkDims(url) {
var valid;
$("<img/>").attr("src", url).load(function() {
s = { w: this.width, h: this.height };
if (s.w == 100 && s.h == 100) {
valid = true;
}
else {
valid = false;
}
});
return valid;
}
Но он дал мне неопределенными в качестве значения действительны, когда я назвал checkDims функционировать
так, если бы я назвал
Var S = checkDims (a_url)
. Он вернется
неопределенные
Нагрузка - это асинхронный вызов, вы не можете вернуться из асинхронного вызова. К тому времени, когда установлено значение true или false, функция уже вышла. – epascarello
Как бы это решить. Если возможно? Нужна ли функция setInterval для ожидания? – BDillan
Вам необходимо изменить свою логику, чтобы обратный вызов срабатывал на следующем этапе вашего процесса. – epascarello