2016-09-28 11 views
0

Я посмотрел вокруг и пытался много решений, но JQuery все еще пытается получить высоту изображения перед загрузкой изображения:jQuery получает высоту изображения перед загрузкой изображения?

$('img').load(function(){ 
    var heightStart = $(".carousel .carousel-inner img").height(); 
    alert(heightStart); // 0 
}); 

Я всегда получаю . Любые идеи, что это лучший способ сделать это?

Я даже пытался с равнинными ЯШАМИ:

var i = new Image() 
    i.src = "images/xxx.jpg"; 
    var h = i.height 
    alert(heightStart); // 464 

Он получает высоту изображения, но количество не так! Число всегда меньше, но изображение имеет длинную высоту.

EDIT:

изображения не высота и ширина атрибуты:

<div id="myCarousel" class="carousel slide" data-ride="carousel"> 

    <div class="carousel-inner"> 

    <div class="item active"> 

     <img class="first-slide" src="images/xxx.jpg" alt="First slide" class="img-responsive"> 
     <div class="container"> 
      <div class="carousel-caption">xxx</p> 
       </div> 
      </div> 
     </div> 
    </div> 

Моя высота изображения 464 так new Image() является правильно. но проблема в том, что изображение было изменено на большом экране с помощью img-responsive.

+0

Назовите меня сумасшедшим, но для первой части не должно быть '$ (". Carousel .carousel-inner img "). Load'? Если вы просто выполняете '$ ('img')', он будет вызывать эту функцию, даже когда загружается первое изображение на странице, а не только определенное изображение. Конечно, я не вижу ваш HTML-код, возможно, это единственный образ на странице ... – aaronofleonard

+0

ребята, см. Мое редактирование выше. Благодарю. – laukok

+0

Это все ваш вопрос о том, что означает ваш титул? Если это так: http://stackoverflow.com/a/6575319/1414562 –

ответ

3
$('img').load(function(){ 
    alert($(this).height()); 
}); 

или

var i = new Image() 
i.src = "images/xxx.jpg"; 
i.onload = function() { alert(this.height) }; 

Небольшого пояснение пойти с ответом - ваша первая функция регистрирует OnLoad слушателей всех настоящих img элементов, предупреждающих совпавшие img элемента в высоту .carousel .carousel-inner «s, который может быть 0, кто знает.

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

+0

спасибо за ответ. см. мое редактирование выше. – laukok

+0

@teelou Я не понимаю, в чем проблема? –

Смежные вопросы