PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Ajax Rückgabe wieder ins DOM einbinden (http://www.selfphp.de/forum/showthread.php?t=24592)

Doc_McSky 22.02.2012 17:52:40

Ajax Rückgabe wieder ins DOM einbinden
 
Hallo liebe Leute,

jetzt wird es kompliziert und letztlich sitze ich schon seid einer halben Ewigkeit an meinem Problem mit verschiedenen Ansätzen.

So, es geht darum, das ich eine Seite habe, in der per Ajax verschiedene HTML Inhalte nachgeladen werden, die der User in einer Art Karteikarte abrufen kann. Eben das die einzelnen Tabs nachgeladen werden ohne die Seite neu zu laden, so weit alter Hut und kein Problem.

Jetzt wird es interessanter:
Auf der Seite wird mittels jQuery und einem Tooltip Plug-In bei einigen Links ein Tooltip angezeigt mit HTML Inhalt in Text und Bild. Soweit auch kein Problem, das klappt prima. Alle Links, die ein einem DIV mit der ID "Liste" eingebunden sind, wird der anzuzeigende Tooltip-Inhalt aus dem Attribut "title" des dann folgenden Links geholt. soweit, auch so gut.

Jetzt mein Problem:
Bei allen Inhalten, die nun per Ajax vom Webserver geholt werden gibt es auch Links, die nach obigem Vorbild aufgebaut sind.
Allerdings wird hier der Tooltip NICHT mehr angezeigt. Stattdessen wird das DIV ignoriert und der Inhalt des Attributs "title" als normaler Tip angezeigt wie es jeder kennt, natürlich wird dann KEIN HTML umgesetzt, sieht also blöd aus HTML als Tooltip in Quelltextform. :'(

Da das ganze ja eben mit Javascript zu tun hatte, hatte ich seinerzeit gegoogelt und mir auch hier Hilfe geholt in der Form, das mir zu Ohren kam, das Javascriptcode bei der Ajaxrückgabe gar nicht mehr berücksichtigt wird und dieser neu "ausgeführt" werden muss. Ok, klang logisch, habe ich gemacht und mir eine Function gebastelt, die mittels eval() in JS den neu zurückgegebenen Code ausführte. Klappt eigentlich ganz prima, löst aber NICHT genau dieses Problem.

Ich denke und bitte verzeiht mir, falls ich falsch liegen sollte, das mein Problem darin liegt, das alles, was per Ajax zurückkommt, mit innerHTML in ein DIV Feld eingebunden wird. Jetzt habe ich gelesen, das innerHTML eben nur den Text einfügt, ihn aber nicht in das DOM einfügt, also nicht als Objekte, auf die man anschließend zugreifen kann. Somit dürfte die Definition bei jQuery, das alle "#Liste a" mit einem Tooltip zu versehen sind, nicht mehr greifen, kann ich da eventuell richtig liegen?
Denn die Liste aller DIV's mit dieser ID wird ja beim Aufruf der Seite angelegt und steht jQuery zur Verfügung, alle neu hinzugekommenen DIV's eben nicht.

Jetzt aber dann meine Frage zu dem Problem:
Da die Rückgabe durchaus komplizierte Tabellen und Listen sind, welche Möglichkeit habe ich, das die Methoden und deren Eigenschaften und und und auch wieder in das DOM übernommen und somit vom Browser berücksichtigt werden, wenn eine solche Aktion wie der Tooltip verlangt wird. Alle <div id="Liste"><a href=.....></a></div> werden ignoriert und die zugewiesene DIV-Methode nicht ausgeführt. Wie müsste ich quasi den HTML Klumpen, den mir die Ajax Routine zurück liefert parsen, damit das alles Wieder berücksichtigt wird?

also das CSS wird ja auch noch weiter berücksichtigt, das geht, nur eben oben beschriebenes jQuery Plug-In nicht.

Danke, ich hoffe ich konnte mich einigermaßen verständlich ausdrücken.

Gruß
Doc

Ckaos 22.02.2012 22:30:26

AW: Ajax Rückgabe wieder ins DOM einbinden
 
Hi

JQuery -> live()
Anschauen staunen ;)

mfg

CKaos


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:21:37 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.