divs ausblenden, wenn Javascript aktiviert ist

lisa5

Grünschnabel
Hallo,
ich sitze seit einiger Zeit daran, etwas mit Javascript zu schreiben. Leider klappt es nicht so wie ich es mir vorstelle, weil ich leider noch nicht so viel Erfahrungen habe. Wenn Javascript deaktiviert ist, sollen alle divs angezeigt werden. Wenn Javascript aktiviert ist, sollen zunächst alle divs nicht angezeigt werden und wenn man dann auf einen Link klickt, soll eines der divs angezeigt werden. Klickt man auf einen anderen Link, so soll ein anderes div sichtbar und alle anderen divs unsichtbar sein.

Code:
function show(divid) {
d=document;
d.getElementById("b").style.display="none";
d.getElementById("c").style.display="none";
d.getElementById("d").style.display="none";
d.getElementById(divid).style.display="inline";
}

HTML:
<a href="#" onclick="show('b')">Intro</a>
<div id="b" style="display:inline">div b</div>
<a href="#" onclick="show('c')">News</a>
<div id="c" style="display:inline">div c</div>
<a href="#" onclick="show('d')">Info</a>
 <div id="d" style="display:inline">div d</div>

Bei mir werden immer alle divs angezeigt, egal ob Javascript aktiviert oder deaktiviert ist. Kann mir bitte jemand sagen, was ich falsch mache? Im Internet habe ich es genauso gefunden. Vielen Dank.
Viele Grüße
Lisa
 
Moin,
Bei mir werden immer alle divs angezeigt, egal ob Javascript aktiviert oder deaktiviert ist. Kann mir bitte jemand sagen, was ich falsch mache? Im Internet habe ich es genauso gefunden.
den Script-Code hast du aus dem hiesigen JS-Tutorial Basic DHTML Menü entnommen ;)

Die Anweisungen bzgl. der Sichtbarkeit der Objekte sind an die Funktion show(divid) gekoppelt, d.h. wenn die Seite mit aktiviertem JS aufgerufen wird, geschieht solange nichts, bis die Funktion vom Benutzer "aktiv" angestoßen wird.

Folglich muß die Funktion automatisch aufgerufen werden, nachdem die Seite vom Browser vollständig geladen wurde.

Dies geschieht mit Hilfe des window.onload-Events:

Code:
function show(divid) {
d=document;
d.getElementById("b").style.display="none";
d.getElementById("c").style.display="none";
d.getElementById("d").style.display="none";
d.getElementById(divid).style.display="inline";
}

window.onload = show;


mfg Maik
 
Hallo,
danke für die schnelle Antowort. Ich habe die Zeile window.onload = show; ergänzt. Allerdings werden immer noch alle divs angezeigt, egal ob Javascript aktiviert oder deaktiviert ist.
Viele Grüße
Lisa
 
Entweder ist dir irgendwo ein Fehler unterlaufen, oder du mußt zwischendurch mal den Browsercache leeren, und anschließend die Seite neu aufrufen, denn bei mir funktioniert's wie gewünscht.

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<meta name="author" content="Maik" />
<meta name="date" content="2010-04-30" />

<title>tutorials.de | divs ausblenden, wenn Javascript aktiviert ist</title>

<script type="text/javascript">
function show(divid) {
d=document;
d.getElementById("b").style.display="none";
d.getElementById("c").style.display="none";
d.getElementById("d").style.display="none";
d.getElementById(divid).style.display="inline";
}

window.onload = function() {
show();
}
</script>

</head>
<body>

<ul style="list-style:none;">
  <li>
    <a href="#" onclick="show('b')">Intro</a>
    <div id="b" style="display:inline" >div b</div> 
    <a href="#" onclick="show('c')">News</a>
    <div id="c" style="display:inline">div c</div>
    <a href="#" onclick="show('d')">Info</a>
    <div id="d" style="display:inline">div d</div>
  </li>
</ul>

</body>
</html>


mfg Maik
 

Neue Beiträge

Zurück