5 Stimmen

Jquery .laden überprüft nicht, ob mein Element geladen ist

Ich habe diesen Code

$("#main_photo_display").load(function(){
    alert("geladen");
});

Ich benötige, dass es etwas macht, sobald dieses Div geladen ist. Momentan passiert nichts. Wenn ich window durch "#main_photo_display" ersetze, funktioniert es. Ich habe bereits gegoogelt und immer wieder .load als Möglichkeit gefunden, um zu überprüfen, ob ein Seitenelement geladen wurde.

3voto

Jasper Punkte 75123

Das Load-Ereignis wird an ein Element gesendet, wenn es und alle Unterelemente vollständig geladen wurden. Dieses Ereignis kann an jedes Element gesendet werden, das mit einer URL verknüpft ist: Bilder, Skripte, Frames, Iframes und das Fensterobjekt.

Quelle: http://api.jquery.com/load-event/

Auf derselben Seite weiter unten heißt es:

Es blubbert nicht korrekt aufwärts im DOM-Baum

Sie können also dieses Ereignis nicht delegieren, der Ereignishandler muss am Element angehängt werden, auf dem das load-Ereignis ausgelöst wird.

2voto

Indranil Punkte 2451

Oder Sie können das Skript ausführen, nachdem der DOM bereit ist, wie folgt:

$(document).ready(function() {
    $("#main_photo_display").load(function(){
        alert("geladen");
    });
});

Entschuldigung, ich glaube, ich habe es falsch gelesen :) Sie benötigen dies:

    $(document).ready(function() {
        alert('geladen');
    });

1voto

jfriend00 Punkte 632952

Ein einfaches div hat kein Load-Event, außer wenn Sie Inhalte mit Ajax darin laden (was ich nicht glaube, dass Sie hier tun). Wenn Ihr Code sich physisch nach dem div auf Ihrer Seite befindet, dann ist das div verfügbar und bereit für Ihren Code, um darauf zu arbeiten (Sie müssen nichts überprüfen).

Wenn sich Ihr Code vor dem div auf der Seite befindet, können Sie Jquerys .ready()-Methode verwenden, um zu wissen, wann es sicher ist, auf das div zuzugreifen:

    $(document).ready(function() {
        // Hier ist es sicher, auf $("#main_photo_display") zuzugreifen
    });

1voto

Luke Stevenson Punkte 10282

Ich glaube nicht, dass ein DIV ein loaded-Ereignis auslöst. Wenn sich ein blank.gif-Bild innerhalb des DIV befindet, könnten Sie die $.load()-Funktion daran anhängen.

  ..... Anderer Inhalt .....

$(document).ready(function(){

  $("#main_photo_display img.loadcheck").load(function(){
    alert("geladen");
  });

});

0voto

lonesomeday Punkte 224087

Sie können das nicht tun: load-Ereignisse werden nicht auf einfachen HTML-Elementen ausgelöst, sondern nur auf solchen, die das Laden einer externen Ressource erfordern.

Der beste Weg, um sicherzustellen, dass das Element geladen ist, besteht darin, das script-Tag nach ihm im Markup zu platzieren.

    alert("geladen");

Der JavaScript wird nicht ausgeführt, bevor das div geparst wird.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X