jQuery ajax load () Java-Skript wird nicht ausgeführt?

7

Ich habe mehrere Beiträge zu diesem Problem gelesen, aber ich kann es nicht lösen.

Ich lade eine HTML-Datei in ein Div. Die Datei, die ich lade, enthält eine ungeordnete Liste. Diese Liste sollte erweitert werden (ein Menü mit Untermenüpunkten) und geschlossen werden. Deshalb brauche ich js. Aber leider ist dieses Skript nicht geladen.

Kann mir jemand helfen?

Wäre so großartig! Vielen Dank:)

    
johnlikesit 22.08.2009, 21:25
quelle

8 Antworten

12

Wenn ich verstanden habe, was Sie richtig gefragt haben ...

Sie möchten über Ajax in ein div auf Ihrer Seite laden, rufen Sie es auf;

1) div id="loadStuffHere" von (abc.html)

2) Das Zeug zum Auffüllen von "loadStuffHere" kommt von xyz.html

Mach das einfach;

  

$ ("loadStuffHere"). load ("xyz.html");

ABER WARTEN !! Sie wollen nicht alles von xyz.html laden wollen Sie nur einen Teil von xyz.html sagen sagen (xyz.html)

Mach das einfach;

  

$ ("loadStuffHere"). load ("xyz.html #loadMeOnly");

ABER WARTEN !! Nehmen wir an, dass div id="loadMeOnly" ein Akkordeon ist, was bedeutet, dass es initialisiert werden muss, was bedeutet, dass Sie auch die Javascripts aufnehmen müssen ... hmm, was zu tun ist ...

Sie würden darüber nachdenken, dies zu tun;

  

$ ("loadStuffHere"). load ("xyz.html #loadMeOnly");   $ .getScript ('js / xyz.js');

Nun, das obige saugt, weil a) du eine externe js-Datei erstellen müsstest und b) du tatsächlich 2 http-Aufrufe machst, wenn du es mit 1 http-Aufruf machen könntest, wenn du es auf normale Weise nicht-ajax machst.

Also ... die beste Lösung ist, 2 Dinge mit 1 Aufruf zu bekommen (HTML und die js - 1 Zeile, 1 http) hier ist, wie Sie es tun;

  

$ ("loadStuffHere"). load ("xyz.html #loadMeOnly, script");

Dies lädt die #loadMeOnly div UND alle Skript-Tags, damit Sie alles haben ... glücklich glücklich:)

Der Trick hier ist Kommas ... du könntest auswählen und laden, was du willst

    
user6890 28.07.2010 10:41
quelle
2

Stellen Sie also sicher, dass Sie jQuery an erster Stelle geladen haben, stellen Sie sicher, dass der Link zur Bibliothek im Kopf Ihres HTML-Codes steht, also etwa so:

%Vor%

Verwenden Sie den Firebug , um sicherzustellen, dass er geladen wird, indem Sie auf die Registerkarte "net" klicken.

Stelle sicher, dass du dein Javascript: (hier habe ich es "main" genannt)

geladen hast %Vor%

Dann mach in deiner js-Datei etwas wie:

%Vor%

Das sollte die Warnung auslösen, sobald die Seite "voll geladen" hat. Ich bevorzuge ready() , die ausgelöst wird, sobald das DOM geladen ist.

Wenn alles funktioniert und du eigentlich js aus deiner js-Datei laden und ausführen willst, versuche folgendes:

%Vor%

Dadurch wird das gewünschte JavaScript geladen und ausgeführt.

    
JP Silvashy 22.08.2009 21:36
quelle
2

Diese Lösung funktioniert am besten. Verwenden einer Rückruffunktion, nachdem der bestimmte div- oder Inhaltscontainer geladen wurde.

%Vor%     
user1313864 04.04.2012 21:04
quelle
2

Juhu. Ich habe es gelöst. Ich weiß nicht, ob das der eleganteste Weg ist, aber es funktioniert:)

jpsilvashy dein getscript (); hat es geschafft :) Ich habe diese beiden Zeilen in meinen Inhalt aufgenommen, die geladen werden sollten:

%Vor%

das funktioniert.

Für alle, die das gleiche Problem haben, gibt es einen kleinen Hinweis. Sie sollten die Body- und Head-Tags löschen. Wenn sie enthalten sind, funktioniert es nicht.

Aber jetzt gibt es noch eine Frage: Warum muss ich das in den geladenen Inhalt aufnehmen? Ich denke, das JavaScript muss geladen werden, nachdem der Inhalt in das Dom geladen wurde.

Aber das ist nur eine Annahme!

Danke für Ihre großartige Hilfe!

    
johnlikesit 23.08.2009 10:14
quelle
2

Das Skript kann document.ready nicht verwenden, das Dokument ist bereits bereit. Legen Sie das Skript einfach zwischen die Skript-Tags.

falsch:

%Vor%

richtig:

%Vor%     
btafarelo 22.11.2013 12:05
quelle
0

Ahh, ich verstehe ... Wenn Sie nur etwas HTML laden wollen:

%Vor%

Wo div#main ist div Ich möchte in Ihrer Remote-Datei abrufen, aber denken Sie daran, dass dies die gleiche Domäne sein muss, damit es funktioniert.

    
JP Silvashy 22.08.2009 22:12
quelle
0

Sie können JavaScript-Dateien mit Hilfe von jQuery.getScript dynamisch laden und eine Callback-Funktion setzen. Wenn das Skript geladen wurde, wird die Callback-Funktion aufgerufen. Hier ist ein Beispiel für das Laden der Bibliothek highlightjs von cdnjs :

%Vor%     
starikovs 01.06.2015 11:12
quelle
-1

Sie müssen aover auf der ungeordneten Liste explizit aufrufen. Weitere Informationen finden Sie unter documentaton .

    
Zed 22.08.2009 21:31
quelle

Tags und Links