объем переменной jquery - PullRequest
       2

объем переменной jquery

0 голосов
/ 09 февраля 2012

У меня есть этот код в jquery:

var ratio;
$("<img/>").attr("src", $(img).attr("src")).load(function() {
ratio = this.width / this.height;
    alert(ratio);
});

Это возвращает правильное соотношение, но когда я пытаюсь это

var ratio;
$("<img/>").attr("src", $(img).attr("src")).load(function() {
ratio = this.width / this.height;        
});
alert(ratio);

Возвращает undefined .

Я не понимаю, почему это происходит, хотя я объявил глобально переменную отношений.

Я использую это в следующем примере:

работает http://jsfiddle.net/7sUAY/5/

не работает http://jsfiddle.net/7sUAY/6/

Спасибо, Мугур

Ответы [ 2 ]

2 голосов
/ 09 февраля 2012

Это потому, что метод .load() занимает больше времени.Ваше оповещение выполняется быстрее, чем загружено изображение.

2 голосов
/ 09 февраля 2012

Вы присваиваете значение ratio только внутри обратного вызова (передается функции загрузки). Этот обратный вызов будет сделан, когда изображение загрузится. Это не будет сделано до того момента, когда будет оповещено ratio, поэтому ratio остается неопределенным.

См. Здесь метод загрузки Документация.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...