Thickbox und jQuery funktionieren nicht zusammen?

qde

Mitglied
Hi,

ich stehe mal wieder vor einem Problem. Wenn ich es nicht müsste, würde ich einen großen Bogen um diesen ganzen Kram machen, aber es gibt halt leider kein entrinnen... :(

ich verlinke auf einer Seite eine Url, die in einer Thickbox angezeigt werden soll. Das ganze sieht so aus:
HTML:
<li><a href="javascript:tb_show('Test','../Views/Layouts/test.htm?height=500&width=600&articleId=1','');" class="thickbox" title="">Ärger um Engelhöfe</a></li>

die articleId gibt an, welche Daten angezeigt werden sollen (hat also nichts mit Thickbox und dem Problem zu tun).

meine Test.htm sieht so aus:
HTML:
<html>
<head><script type="text/javascript" src="http://meineurl/jquery-1.2.6.js"></script> </head>
<body>
 <script type="text/javascript">
jQuery(document).ready(
	function()
	{		
alert('ja alles super jQuery funktioniert mit thickbox');
});
</script>
</body>
</html>

Wenn ich die Seite (test.htm) gehe, dann wird das alert ohne probleme ausgegeben. Über den Thickboxlink passiert allerdings im Firefox überhaupt nichts.

jQuery.noConflict(); bewirkt nichts.

Was kann ich tun? Warum werden einem eigentlich bei jedem noch so kleinen Arbeitsschritt Steine in den Weg gelegt? Es kann doch wirklich nicht wahr sein, dass ich allein schon bei der Prototypentwicklung immer wieder durch solch unerklärliches Fehlverhalten aufgehalten werde.

Für Hinweise wäre ich sehr dankbar!
 
Zuletzt bearbeitet:
Moin,

erster Hinweis: JQuery und Thickbox funktionieren ganz sicher zusammen, denn Thickbox basiert auf JQuery :-)

Das Problem in diesem Fall dürfte in der thickbox.js liegen:
Code:
$(document).ready(function(){   
	tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox
	imgLoader = new Image();// preload image
	imgLoader.src = tb_pathToImage;
});

Dort wird auch der onload-Event des Dokumentes(das ist ja ]$(document).ready) bemüht....und höchstwahrscheinlich dein anderer Eventhandler "überschrieben".

Lösung: schreibe deine anderen ready-Anweisungen in der thickbox.ja dazu ;)
 
Hi,

na das ist ja peinlich. Dachte Thickbox basiert auf Prototype. Habe inzwischen schon zu viele Javascripte heruntergeladen.

Leider funktioniert dein Lösungsansatz nicht. Ich habe zum Test einfach mal ein alert ausgegeben. Beim Aufruf der Seite mit dem Thickbox-Link wird das alert-Fenster noch ausgegeben, aber wenn ich auf den Link klicke, der die Seite dann in einer Thickbox anzeigt, kommt kein alert Fenster.
 
Hallo Sven,

wieso sollte es denn nicht kommen? Ich habe im Thickbox-Link schließlich angegeben, dass es sich um ein IFrame handeln soll.


Jetzt habe ich folgenden Zustand:

Wenn ich auf den Link klicke, wird das alert mit dem get-Parameter ausgegeben. Den jQuery.ready-Code habe ich in die Thickbox.js kopiert. Dort steht unter anderem auch das alert drin. Aber
Code:
jQuery('#detail'+ jQuery(document).getUrlParam("articleId")).fadeIn('slow');
wird komplett ignoriert.

Das verwunderliche: Wenn ich auf den Link klicke, bekomme ich eine leere Seite. Aber wenn ich rechte maustaste/Aktueller Frame -> Frame in neuem Tab öffnen, dann wird das entsprechende Div eingeblendet. Da blick' nochmal einer durch....

Ich hoffe jemand kann mir helfen.
 

Neue Beiträge

Zurück