Shadowbox reagiert nicht sofort

Darian

Erfahrenes Mitglied
Hallo Leute,

mir ist gerade aufgefallen dass die Shadowbox die ich eingebunden habe zuerst beim zweiten Klick funktioniert.

1. Klick (öffnent sich ohne Shadowbox normal im Browser, ganz ohne HTML, einfach nur das jpg
2. Ich Klicke zurück
3. Noch einmal auf das Bild, jetzt funktioniert es.

Eingebunden habe ich es wie folgt:

HTML:
<a style="border: medium none ;" rel="shadowbox" href="pics/workflow_pic.jpg"><img style="border: medium none ;" src="pics/workflow_thumb.jpg" width="219" height="136"></a>
<a class="news_link" style="border: medium none ;" rel="shadowbox" href="pics/workflow_pic.jpg"><div style="position: relative; top: -15px; left: 230px;"><img src="pics/arrow_red2.gif" alt="" width="10" border="0" height="10">Ansicht vergrößern</div></a>

Bitte doch um Infos.

thx und lg
Darian

<edit>Mir ist gerade aufgefallen dass genau der Content dynamisch gezogen wird. Ich hatte den Shadowbox.init() Code im Header. Wenn ich "Zurück" klicke wird ja ein refresh ausgelöst. Darum geht es beim zweiten mal dann.

Habe auf den JS Code selber nicht soviel Einfluss, weil das mit xajax (PHP Framework) gemacht wurde. Wie könnte ich das Problem lösen?
</edit>
 
Zuletzt bearbeitet:
Hi,

in deinem HTML-Snippet fällt mir nur auf, dass du im zweiten <a> (= Inline-Element) ein <div> (= Block-Element) eingebunden hast, das gemäß der HTML-Elementreferenz dort nicht enthalten sein darf.


Kann die Seite irgendwo begutachtet werden?

mfg Maik
 
Hallo,

mit dem div hattest natürlich recht, das habe ich übersehen. Habe das geändert, und das hat leider nichts gebracht.

Hier der neue Code:

HTML:
<a style="border:none;" rel="shadowbox" href="{TECHNIC.WORKFLOW}"><img style="border:none;" src="{TECHNIC.WORKFLOW_THUMB}" width="219" height="136"/></a>
    <a class="news_link" style="border:none; position:relative; top:-15px; left:5px" rel="shadowbox" href="{TECHNIC.WORKFLOW}"><img  src="pics/arrow_red2.gif" alt="" border="0" height="10" width="10" />{TECHNIC.BLOCK1_7}</a>

Link zu der Seite schicke ich dir, will es noch nicht zu sehr veröffentlichen.

thx und lg
Darian


<edit>
Habe auch probiert das Shadowbox zu initialisieren falls es noch nicht geschehen ist, und das in dem Content der dynamisch geladen wird, ob der auch ausgeführt wird weiß ich nicht. Ändert jedenfalls nichts.

<script type="text/javascript">

if(Shadowbox == undefined)
{
Shadowbox.init();
}
</script>

Dachte auch dass ich bei einem mouseover überprüfe, leider auch keine Änderung.
</edit>
 
Zuletzt bearbeitet:
Hi,

orientiere dich mal bei der Shadowbox-Initialisierung am Original-Script:
Javascript:
Shadowbox.init({
    language: 'en',
    players:  ['img', 'html', 'iframe', 'qt', 'wmp', 'swf', 'flv']
});

mfg Maik
 
Moin,

das Problem ist in der Tat der dynamisch nachgeladene Content.

In der Bedienungsanleitung (ganz am Ende) ist beschrieben, wie in diesem Fall vorzugehen ist:

Initalisieren:
Code:
<script type="text/javascript">
Shadowbox.init({    
    skipSetup: true
});
</script>

Dann: beim onload der Seite und jedes mal, wenn neuer Content hinzugekommen ist, folgende Anweisung:
Code:
Shadowbox.setup();
 
Hallo Leute,

das Problem ist schon gelöst.

Nachdem ich das mit dem setup erfahren habe. Habe ich dort auch die open funktion entdeckt.

Da es sich bei mir nur um eine kleine Shadowbox handelt, reicht das.

Also mit onclick und Shadowbox.open() funktioniert alles.

thx und lg
Darian
 
Hallo Leute,

dachte zuerst dass es geht, irgendwie jetzt aber doch nicht.

Das habe ich im header:

HTML:
<link rel="stylesheet" type="text/css" href="include/shadowbox/shadowbox.css">
<script type="text/javascript" src="include/shadowbox/shadowbox.js"></script>

<script type="text/javascript">
	Shadowbox.init({
    	 skipSetup: true
	});
	//Shadowbox.init();
</script>

</head>

Jetzt gibt es also die Shadowbox im Dom, und es wurde initialisiert.

Das folgende steht in der html seite die dynamisch geladen wird. (also eher im body)

Wie wird so ein js Tag im body eigentlich verarbeitet. Ein direktes alert() wird auch nicht aufgerufen wenn der content geladen wird, sondern erst wenn F5 gedrückt wurde?

Hier nun das js im body:

HTML:
<script type="text/javascript">

	//alert("test");

	function loadsb() {
		
		Shadowbox.open({
			content:    '{TECHNIC.WORKFLOW}',
			player:     "img",
			title:      "Workflow",
			height:     523,
			width:      849
	    });

	}
	
</script>

Und hier nun das Bild auf das geklickt wird:
HTML:
<img style="border:none; cursor:pointer;" rel"shadowbox" onclick="javascript:loadsb();" src="{TECHNIC.WORKFLOW_THUMB}" width="219" height="136"/>

Es scheint so als wird das onlick im img Tag erst nach einem Refresh richtig verarbeitet. Das alert("click") erscheint auch nicht.

HTML:
    <img style="border:none; cursor:pointer;" rel"shadowbox" onclick="javascript:loadsb(); alert('click');" src="{TECHNIC.WORKFLOW_THUMB}" width="219" height="136"/>

Glaube schon langsam das ist ein anderes Problem, und hat gar nichts mit Shadowbox zu tun.

Mir kommt das schon komisch vor.

lg und danke für eventuelle Antworten
Darian
 

Neue Beiträge

Zurück