2016-07-18 3 views
3

im пытается получить размер <img> в <window> путем проверки ширины и высоты его контейнера.Как получить высоту div после загрузки содержимого?

Я использовал .load(), чтобы подождать до загрузки <img>.

На PageLoad размер по-прежнему 0.

я только получить правильную высоту на изменение размера.

Что здесь не так?

EDIT: чтобы получить правильный размер я добавил .contents()

$(document).ready(function(){ 
    $('img').load(function(){ 
     function size(){ 
      var height = $('#size').contents()height(); 
      var width = $('#size').contents().width(); 
      $('#size').find('p.size').remove(); 
      $('#size').append('<p class="size">' + height + '-' + width + '</p>'); 
     }; 
     $(window).load(size); 
     $(window).resize(size); 
    }); 
}); 

ответ

3

вы определяете функцию, но не вызывать его

место size(); после $(window).resize(size);

EDIT: весь код с некоторые улучшения

$(document).ready(function(){ 
    function size(){ 
     var height = $('#size').height(); 
     var width = $('#size').width(); 
     $('#size').find('p.size').remove(); 
     $('#size').append('<p class="size">' + height + '-' + width + '</p>'); 
    } 

    $(window).load(size); 
    $(window).resize(size); 
    $('img').load(size); 
}); 
+0

it gehts i nvoked ... $ (окно) .load (размер); – Gregor

+0

@Gregor, но оба этих события срабатывают перед завершением запроса AJAX. Вы также должны вызвать функцию непосредственно в обратном вызове, поскольку pwolaq предлагает –

+0

Да, при изменении размера окна, как вы заявили, - если вы хотите вызвать его после загрузки, поместите код выше, как я предложил – pwolaq