Paule: fünfzehnmal klappt es und dann ist Schluß

Beitrag lesen

Hallo !

Ich habe folgendes Problem.
Ich möchte Stylesheets durch eventhandler verändern.
In einer Tabelle möcht ich beim überfahren eines Links
das Hintergrundbild dieser Zelle austauschen.

Ich habe ein Script gefunden, daß die Hintergrundfarbe
bei Überschriften verändert, wenn man die Maus darüber bewegt und habe dies umgeschrieben.

Im Kopf steht:

<style type="text/css">
<!--
td { background-image:url(bild1.gif) }
//-->
</style>

<script language="JavaScript" Type="Text/Javascript">
<!--

function nB(Nr)
{
var Bild;
if (document.all)
{
Bild = document.createStyleSheet();
Bild.addRule("td"+Nr,"Background-image:url(bild2.gif)");
}
}

function nB2(Nr)
{
var Bild;
if (document.all)
{
Bild = document.createStyleSheet();
Bild.addRule("td"+Nr,"Background-image:url()");
}
}
//-->

Im Körper steht:

<table>
<tr><td class="1">
<a href="......." onmouseover="nB(1)" onmouseout="nB2(1)">...........</a>
</td></tr>

<tr><td class="2">
<a href="......." onmouseover="nB(2)" onmouseout="nB2(2)">...........</a>
</td></tr>
.
.
.
.
</table>

Mit Hilfe von (Nr)wird erreicht das wirklich nur die Zelle verändert wird, die ach überfahren wird.
Beim verlassen der Zelle mit dem Courser wird
die zweite Funktion aufgerufen.
Da diese kein Bild definiert, erscheint das Original
wieder, das mit Hilfe von Stylesheets im Kopf
festgelegt wurde.

"creatstylesheet" ist vom InternetExplorer
eingeführt worden und wird auch nur von ihm
interpretiert.

Alles ist schön und gut, aber bei der fünfzehnten
Wiederholung von MouseOver und MouseOut,
wird plötzlich eine Fehlermeldung gebracht.

die Zeile:
Bild = document.createStyleSheet();
die in beiden Funktionen enthalten ist,
soll plötzlich einen Fehler enthalten.

Aber Warum, wenn es doch erst mal klappt?

Ich habe leider noch nicht so die Ahnung von JavaScript
und war deshalb auch froh das nach der Umstellung
alles klappte.
Deshalb wäre ich froh, sei es auch nur ein beschissener
Anfängerfehler, wenn mir jemand
den Fehler nennen und berichtigen könnte.

Vielleicht gibt es aber auch eine andere Möglichkeit diese Aufgabe zu lösen.

Vielen Dank

Paule