jQuery Ajax load HTML-Inhalt mit Bild, wie Sie überprüfen, ob alle Bilder geladen sind?

Ich bin dabei ein Skript für unendliche scrollen für meine Website:

$(window).scroll(function(){
  if($(window).scrollTop() == $(document).height() - $(window).height()){
    ...
    $.ajax({
      ...
      success: function(json) {if(json.success){
        ...
        //here I append an Ajax @response with a new element to my existing HTML
        $("#mindIndexSummaryFirst").append(json.items1);
        $("#mindIndexSummarySecond").append(json.items2);
        $("#mindIndexSummaryThird").append(json.items3);
        //here I try to check whether all images are loaded
        $("#mindIndexSummary img").on('load', function(){
          //and I need to call two functions on loaded element
          //hoverImg() need the loaded image to calculate the height
          $('.pi-hover-img'+json.course).hoverImg();
          $(".popup3").tooltip();
        });
      }
    ...
  });

Einer geladenen HTML-element ist dieses:

<div class="page-item pi-hover-img  pi-normal">
  <a class="overlayPop" href="#">
  <a class="item_uri" id="course153" href="#">
    <img src="/public/file/course/image/153-course.png" class="pi-item-image">
  </a>
  <a href="#" class="popup5 hide-text" style="display: none;">
    <img src="/public/file/account/image/282-user.jpeg" class="item_image">
  </a>
  <a class="popup action-button big_interested " id="course_153" href="javascript:;" style="top: -162.5px; left: 83.5px; display: none;"> Mi interessa</a>
  <a href="javascript:;">Description</a>
  <a class="popup4 hide-text" href="javascript:;">Preview</a>
  <span class="popup2" style="display: none;">1€</span>
  <a href="/course/153/gestire-un-pubblico">
    <h2 style="top: 320px;">Gestire un pubblico</h2>
    <span class="rfloat pi-icon">
      <img src="/public/img/site_icon/video_course_black.png">
    </span>
    <div class="clearfix"></div>
  </a>
</div>

Lade ich 5 Elemente, 15 Bilder, aber es gibt eine Möglichkeit, dass weniger Elemente geladen werden.

Das problem ist, dass meine Funktion aufgerufen wurde mehr als einmal (ich Teste das mit alert) und ich bin mir nicht sicher, sicher, dass die Funktion aufgerufen wurde, nach dem Bild laden.

Wenn jemand hatte die gleiche situation bitte machen Sie mir etwas (P. S ich entschuldige mich für mein schlechtes Englisch).

  • Die on-load-Ereignishandler nicht für Sie arbeiten?
  • laden, feuern, für jedes Bild laden( $("#mindIndexSummary img").Länge mal)
  • ja, es funktioniert, jetzt habe ich das problem lösen danke für die Antwort 🙂
  • ja jetzt habe ich verstanden 🙂 danke
Schreibe einen Kommentar