"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

JS kompatibel machen

Facetious 18.08.2004 - 11:59 627 6
Posts

Facetious

Addicted
Avatar
Registered: Oct 2003
Location: Wien
Posts: 406
hi leute!

Das js schaut folgender maßen aus:

Code: PHP
function showSubs(id)
{
       if (id.style.display=='none')
           id.style.display='inline';
       else
           id.style.display='none';
}

das funktioniert aber nur im ie

ich bräuchte aber auch eine lösung für andere browser..gibts da irgendwo tuts/hilfestellungen??

tia Facetious
Bearbeitet von Facetious am 18.08.2004, 13:13

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4452
Was soll
Code:
id.style.display='';
bewirken? Du musst immer angeben, was sein display-type ist. Einen leeren gibts es nicht. Eine Liste der gueltigen gibts in den Specs -> http://www.w3.org/TR/CSS21/visuren.html#propdef-display .

Je nachdem wie das Objekt gerendert werden soll wirds vermutlich 'block' oder 'inline' oder was vom Table sein (was darfs heute sein? ;-)

Facetious

Addicted
Avatar
Registered: Oct 2003
Location: Wien
Posts: 406
zuerstmal
thx für rasche antwort
habs schon auf inline geändert

das ganze soll eine navigation sein
beim mouseOver wird die funktion aufgerufen und eine id übergeben

im ie funkts gut, aber firefox nicht :(

Facetious

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4452
Auf inline-geaendert heisst, es geht jetzt oder noch immer nicht? URL?

Facetious

Addicted
Avatar
Registered: Oct 2003
Location: Wien
Posts: 406
Zitat von Rektal
Auf inline-geaendert heisst, es geht jetzt oder noch immer nicht?

im ie ja
im firefox nein

und es soll aber in beiden funktionieren

url:http://facetious.funpic.de/navi.html

Facetious

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4452
Der aktuelle Code ist nicht OK: Es gibt kein
Code:
document.getElementById(id).style.setAttribute
.

setAttribute kann man nur auf das Element selbst anwenden
Code:
getElementById(id).setAttribute
und es bezieht sich auf die Attribute der HTML-Elements, nicht auf die CSS-Properties, also

<img id="foo" border="0" src="bla.png">

getElementById('foo').getAttribute('border');

Es ist einfach nur getElementById('foo').style.display , zuweisen oder auslesen mit variablenzuweisung.

Wenn du Javascript-Console aktivierst siehst du auch dass es einen Fehler gibt.

Knapp gekuerzt:
Code:
<script language="javascript">
function showSubs(id)
{
		document.getElementById(id).style.display = 'inline';
}

function hideSubs(id)
{
		
		document.getElementById(id).style.display = 'none';
}
</script>
...
		<td><span id="Test1" onMouseOver="showSubs('Test1sub')" onmouseout="hideSubs('Test1sub');">Test1</span></td>

Geht in beiden Browsers, macht mir im Mozilla aber Grafikfehler.

Ich wuerd eher den Table oder die table-row oder so ausbleden, nicht einen span mitten drin ...

Facetious

Addicted
Avatar
Registered: Oct 2003
Location: Wien
Posts: 406
thx :) für die schnelle hilfe

SOLVED
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz