JQuery получить ширину изображения после изменения SRC - PullRequest
3 голосов
/ 15 ноября 2011

мой код jquery:

 img[i]='img-src';
 $("#popimage1").attr("src",img[i]);
 alert($("#popimage1").width());      //doesn't give the width of the current image, but it gives for the previous, and for first null

мой код html:

 <img src="" id="popimage1"/>

, так что концепция заключается в том, что я загружаю разные изображения SRC для каждого я с помощью JQuery, а затем я делаю некоторыерасчеты с шириной и высотой.Проблема в том, что я получаю значения для изображения с предыдущим счетчиком i.Я принял временное решение, поставив

  $("#popimage1").hide();
  setTimeout(alert($("#popimage1").width(),2000);
  $("#popimage1").show();

, но оно не всегда работает и вызывает ненужный тайм-аут.вместо оповещения есть другая функция, которая использует ширину и высоту img, я просто написал оповещение для вашего удобства.Любая помощь приветствуется!

Ответы [ 2 ]

9 голосов
/ 15 ноября 2011

Вам придется подождать, пока изображение загрузится первым.

Попробуйте это.

img[i] = "img-src";
$("#popimage1").attr("src", img[i]).load(function() {
  alert($("#popimage1").width());
});
1 голос
/ 15 ноября 2011

Изменение источника изображения выполняется асинхронно, поэтому не возвращается немедленно.

Попробуйте обработать load ()

$("#popimage1").load(function() {
  alert($(this).width());
});
...