| 

.NET C# Java Javascript Exception

2
Moin allerseits.

Ich bin dabei, in einem Bereich einer Website nacheinander verschiedene Objekte ein- und ausblenden. Es ist für Werbebanner gedacht. Dazu lese ich diverse Parameter aus den DIV-Tags aus und blende die einzelnen Objekte ein und aus. Das sieht momentan folgendermaßen aus:

nextEq = (current.index() < $flba.options[index].picNum-1) ? (current.index()+1) : 0;
current.removeClass('current').hide(
$flba.options[index].typeIs,
{
easing:'swing'
},
$flba.options[index].time,function()
{
container.children().eq(nextEq).show(
$flba.options[index].typeIs,
{
easing:'swing'
},
$flba.options[index].time,function()
{
$(this).addClass('current');
if ($flba.options[index].loopActive && !($(this).hasClass('first') && $flba.options[index].loop < 2))
{
$flba.options[index].timeout = window.setTimeout("$flba.next('"+index+"')", $(this).attr('showtime')*1000);
}
else
{
$flba.stop(index);
}
}
)
}
);


Dabei sind in $flba.options die einzelnen Parameter für Dauer und Typ der Animation beim Ein/Ausblenden gespeichert.

Komisch dabei: Auf manchen Seiten funktioniert das System einwandfrei. Manchmal allerdings passiert im DOM nichts. Und wenn ich mir per alert() die entsprechende DIV-Boxen vorher und nachher ausgeben lasse, passt alles und entspricht den Erwartungen. Aber auf der Website und in Firebug passiert nichts! Das tritt sporadisch auf, ich kann noch nicht feststellen, wann.

Ich habe die Site auch schon darauf hin überprüft, ob evtl. IDs mehrfach vergeben sind. Ist alles nicht der Fall. Wie gesagt, manchmal funktioniert es, manchmal wieder nicht. Obwohl ich die richtige Alert-Ausgabe bekomme (objekt.html()).

Wie kommt sowas? Hat jemand schon ein ähnliches Problem gehabt oder eine Idee?
01.07.2011
johny7 471 1 8
johny7 471 1 8
Ehrlich gesagt find ich deine Quellcode-Formatierung fürchterlich.
Zum Thema, tritt das Problem nur im Firefox auf oder auch im Chrome, IE oder Opera?
Wenn Ja, dann probier es bitte mal mit einem anderen Geecko-Basierenden Browser wie K-Melone.
Kannst du unter jsFiddle.net mal eine Demo online stellen?
Floyd 01.07.2011
Das Problem tritt auch in Chrome und IE auf.
johny7 04.07.2011
Also, JSFiddle kannst Du hier finden: http://jsfiddle.net/ec3Cb/
Die Website, auf die verwiesen wird, ist htaccess-geschützt. Du kannst dich ja per PN oder E-Mail melden. Was nicht funktioniert, ist der obrere rechte Bereich (ID="banner_2").
johny7 04.07.2011
1 Antwort
1
Die meißten moderenen Browser cachen DOM-Manipulationen um unnötiges Flaggern zu vermeiden.

Um ein Update zu erzwingen kannst du z.B. eine leere SPAN anlegen (muss sichtbar sein) oder die Position eines Elements verändern.

Das ganze läuft dann unter dem Begriff "force DOM refresh".
01.07.2011
Floyd 14,6k 3 9
Das habe ich auch schon probiert. Reagiert nach wie vor nicht. Eben dasselbe Verhalten: alert()-Ausgaben zeigen eine Änderung der Struktur an, Firebug und Browser nicht.
johny7 05.07.2011

Stelle deine Javascript-Frage jetzt!