2016-09-28 4 views
0

Ich habe umsah und versucht, viele Lösungen, aber jquery versucht immer noch die Bildhöhe zu erhalten, bevor das Bild geladen wird:jQuery erhält die Bildhöhe, bevor das Bild geladen wird?

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

ich eine immer erhalten. Irgendwelche Ideen, was ist der beste Weg, dies zu tun?

Ich habe sogar mit dem einfachen js versucht:

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

Es wird die Bildhöhe, aber die Zahl ist falsch! Die Zahl ist immer kleiner, aber das Bild hat eine große Höhe.

EDIT:

die Bilder nicht in Höhe und Breite Attribute:

<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> 

Meine Bildhöhe ist 464 so new Image()richtig ist. aber das Problem ist, dass das Bild auf dem großen Bildschirm mit img-responsive Größe geändert wurde.

+0

Rufen Sie mich verrückt, aber für den ersten Teil, sollte es nicht sein $ (". Karussell. Karussell-inneren img"). Load'? Wenn Sie nur $ ('img') 'eingeben, wird die Funktion aufgerufen, auch wenn das erste Bild auf der Seite geladen wird, nicht nur dieses bestimmte Bild. Natürlich kann ich deinen HTML nicht sehen, vielleicht ist es das einzige Bild auf der Seite ... – aaronofleonard

+0

Leute, bitte sehe meine Bearbeitung oben. Vielen Dank. – laukok

+0

Ist das alles Ihre Frage darüber, was Ihr Titel bedeutet? Wenn ja: http://stackoverflow.com/a/6575319/1414562 –

Antwort

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

oder

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

Eine kleine Erklärung mit der Antwort zu gehen - Ihre erste Funktion registriert onload Zuhörer alle vorhanden img Elemente, die innerhalb .carousel .carousel-inner ‚s Höhe des ersten angepassten img Element alarmiert, was 0 sein könnte, wer weiß.

Das Problem mit Ihrem Vanilla-Beispiel besteht darin, dass Sie versuchen, die Höhe zu alarmieren, bevor das Bild geladen wird.

+0

danke für die Antwort. Bitte sehen Sie meine Bearbeitung oben. – laukok

+0

@teelou Ich verstehe nicht, was das Problem ist? –

Verwandte Themen