在ajax之后等待图像加载

时间:2014-01-05 13:49:53

标签: jquery image wait

我正在尝试找到通过AJAX调用加载的图像的高度,但是得到随机结果。

有时,我得到正确的图像高度,有时我的图像高度为0。

这是我的代码

$('.content').fadeOut();

$.post('ajax.php?vno=' + new Date().getTime(), {
  action: 'render'
}, function (res) {

  $('.content').html(res.html);
  var images = $('.content img');
  var nimages = images.length;

  if (nimages == 0) {
    $('.content').fadeIn();
  } else {
    images.load(function () {
      nimages--;
      if (nimages == 0) {
        $('.content').fadeIn();
      }
    }).each(function () {
      if (this.complete) $(this).load();
    });
  }

  $('#image-main').load(function () {
    if ($('#image-main').length) $('#wrapper').append('<span>' + $('#image-main').height() + '</span>');
  });

}, 'json');

AJAX调用为变量res.html中的页面返回HTML,我将其移入带有“content”类的div。 然后,我有一段代码等待,直到图像被加载,然后才会消除“内容”。 这似乎工作正常。

最后一位是我有一个探测器的位。 我感兴趣的图片有id'image-main',所以我使用的是.load,我认为只有在图像被完全加载后才能触发?

有时我会将此代码附加到<span>0</span>,有时我会正确地获得<span>546</span>

你能看出我做错了什么吗?我已经尝试了几个小时的不同方法,但它们似乎都给出了随机结果

0 个答案:

没有答案