HighDots Forums  

bgcolor von div-element ändern

Javascript (German) Programmiersprache JavaScript. (de.comp.lang.javascript)


Discuss bgcolor von div-element ändern in the Javascript (German) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Sven Thoma
 
Posts: n/a

Default bgcolor von div-element ändern - 09-17-2004 , 04:42 PM






Hi
ich stehe hier grad etwas auf dem Schlauch
Ich hätte gerne dass sich ein DIV-Element leicht einfärbt wenn man mit der
Maus drüberschwebt. Dafür habe ich mir ne kleine Funktion geschrieben:

function chgcolor(A,Color)
{
window.document.getElementById(A).bgcolor = Color;
}

dann habe ich im HTML das ganze so definiert:
<DIV id="test" onMouseOver="chgcolor('test','#FF0000')">bla bla</DIV>

Das ganze funktionuert bei Tabellenspalten mit TD wunderbar, allerdings
bleibt es beim DIV ohne Auswirkung. Der Code wird auf jeden Fall ausgeführt,
das habe ich gegen geprüft. Was habe ich falschgemacht?

Sven



Reply With Quote
  #2  
Old   
Sven Thoma
 
Posts: n/a

Default Re: bgcolor von div-element ändern - 09-18-2004 , 11:01 AM







"Thomas 'PointedEars' Lahn" <PointedEars (AT) web (DOT) de> schrieb im Newsbeitrag
news:3601297.NYoQCnXxKH (AT) PointedEars (DOT) de...

Quote:
Ein div-Element hat kein Attribut "bgcolor", also auch nicht das
HTMLDivElement-Interface und dessen ECMAScript-Implementation hat
keine solche Eigenschaft. Wenn Du einer nichtexistierenden
Eigenschaft einen Wert zuweist, wird dem Objekt eine Eigenschaft
hinzugefügt, sofern dies die Implementation nicht verhindert.
Ok. soweit ist das klar. aber ein div-Element hat ja prinziepiell ein
Attribut für die Hintergrundfarbe, wenn auch unter anderem Namen. Mir fehlt
ehrlichgesagt der Überblick welches Objekt welche Schnittstellen hat. (deine
Links haben mir zwar prinzipiell enorm geholfen, leider nicht in diesem
Fall) Bisher habe ich jedoch noch keine aufschlussreiche doku finden können.
mit CSS definiere ich die Hintergrundfarbe mit "background-color". In
JScript gibt es hierfür andere Namen, was sich wiederum von Element zu
Element unterscheiden zu scheint. Ob die Seite besondern offen für viele
UA's ist, ist mir ehrlichgesagt egal, da ich die Zielplatformen kenne, auf
denen die Seite später abgerufen wird (und diese kann man an einer Hand
abzählen).

Quote:
Es *darf* also hier nichts passieren. Und selbst bei Tabellenspalten,
genauer Tabellenzellen, solltest Du auf Formatattribute verzichten
und stattdessen CSS nehmen, z.B.

td:hover {
background-color:red;
color:white; /* Vordergrundfarbe nicht vergessen! */
}

Und für UAs, welche die Pseudoklasse nicht interpretieren:
Ok auf die Idee bin ich nicht gekommen
Allerdings hat dieser Lösungsansatz bei mir auch nicht funktioniert. Das
Hover-Attribut wird bei mir nur bei Links interpretiert. Der Versuch um ein
DIV-Element einen Link zu setzten brachte jedoch auch nichts. Wobei ich auch
nicht zwangsweise auf irgendetwas verlinken möchte.

Quote:
script type="text/javascript"
function chgcolor(o, sBgColor, sFgColor)
{
...
}
/script

div onmouseover="chgcolor(this, '#f00', '#fff')">bla bla</div

Wie Du siehst, sind keine IDs und damit weniger DOM-Abhängigkeiten nötig,
weil das das Ereignis auslösende Objekt mit `this' referenziert werden
kann.
Und wieder was gelernt
Wobei dieser Code bei mir auch ohne Wirkung und ohne Fehler blieb.

Quote:
Mich wundert allerdings, dass bei Dir `bgcolor' bei (I)HTMLTableCell-
Objekten funktioniert; AFAIK müsste es `bgColor' heißen, ECMAScript
und Implementationen sind case-sensitive und sowohl in W3C-DOM Level
1+ als auch im IE4-DOM ist die Eigenschaft genau so definiert:
Wollte nicht den Beitrag mit meinem kompletten Code fluten und habe die
relevanten Teile neu geschrieben, da her der Fehler
Thx für deine ausführliche Antwort, und wenn du nicht irgendwelche
Anregungen hast lass hören

Sven





Reply With Quote
  #3  
Old   
Steffen Laubner
 
Posts: n/a

Default Re: bgcolor von div-element ändern - 09-18-2004 , 12:40 PM



Sven Thoma schrieb:

Quote:
"Thomas 'PointedEars' Lahn" <PointedEars (AT) web (DOT) de> schrieb im Newsbeitrag
news:3601297.NYoQCnXxKH (AT) PointedEars (DOT) de...
Bitte keinen Einleitungsroman. Der Name reicht voellig um die
Zitatebenen zuzuordnen. Alle anderen Infos stehen sowieso im Header.

....
Quote:
Ok. soweit ist das klar. aber ein div-Element hat ja prinziepiell ein
Attribut für die Hintergrundfarbe, wenn auch unter anderem Namen.
Nein, jedenfalls nicht bei allen Browsern. Ein HTML-Objekt hat ein
style-Objekt, welches die CSS Eigenschaften des Objekts regelt. Die
Eigenschaft bgColor war eine Eigenschaft, die vor CSS verwendet wurde.

Quote:
script type="text/javascript"
function chgcolor(o, sBgColor, sFgColor)
{
...
}
/script

div onmouseover="chgcolor(this, '#f00', '#fff')">bla bla</div
Wobei dieser Code bei mir auch ohne Wirkung und ohne Fehler blieb.
Latuerlich, Thomas hat die Funktion so gescriptet, dass sie jeden
Fehlerfall abfaengt. Die if-Abfrage prueft, ob ueberhaupt eine
Referenz auf ein Objekt uebergeben wurde, und ob dieses Objekt (ueber
sein style-Objekt oder sonstirgendwo) eine Farbeigenschaft zur
verfuegung stellt. Wenn ja, dann versucht die Funktion den
uebergebenen Wert sXxColor zu setzen. Falls kein Wert fuer sXxColor
uebergeben wurde, dann bekommen die Eigenschaften den Wert ""
zugewiesen.

--
http://www.geocities.com/SoHo/Bistro/9813/ - Photogallery (JavaScript)
http://www.fotocommunity.de/pc/pc.php4?mypics=1631 - more Photos


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.