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:)
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
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.
Diese Lösung funktioniert am besten. Verwenden einer Rückruffunktion, nachdem der bestimmte div- oder Inhaltscontainer geladen wurde.
%Vor%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!
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.
Sie müssen aover auf der ungeordneten Liste explizit aufrufen. Weitere Informationen finden Sie unter documentaton .
Tags und Links javascript jquery ajax load