无法使用jQuery更改图像的宽度

时间:2014-01-26 15:43:07

标签: javascript jquery dom

我有一个页面显示多个图像中的单个图像。我将所有图像存储在json对象(photoarr)中,以便来回导航我使用此函数:

function setPhoto(index) {
  var photo = photoarr[index];
  $('#photoId').text(photo.id);
  $('#photo').attr({ 'src': photo.url, 'alt': photo.title });
  $('#photoTitle').text(photo.title);
  $('#photoWidth').text(photo.width);
  $('#photoHeight').text(photo.height);
  $('#photoTitle').width($('#photo').width());
}

我的挑战是当我到达最后一行时尝试设置#photoTitle宽度以匹配#photo宽度$('#photo').width()为0(零)。

就好像我需要“刷新”我为实际获得新图像宽度所做的DOM更改...

如果上述任何一个有意义,请告诉我该怎么做......

提前致谢

1 个答案:

答案 0 :(得分:3)

您可以尝试类似

的内容
function setPhoto(index) {
  var photo = photoarr[index];

  var img = new Image();
  img.src = photo.url;
  img.onload = function(){

    $('#photoId').text(photo.id);
    $('#photo').attr({ 'src': this.src, 'alt': photo.title });
    $('#photoTitle').text(photo.title);
    $('#photoWidth').text(this.width);
    $('#photoHeight').text(this.height);
    $('#photoTitle').width(this.width);

  }
}