mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 29.03.2024 15:41 Benutzername: Passwort: Auto-Login

Thema: Div,Layer mit JS ein- oder ausblenden vom 31.08.2006


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Div,Layer mit JS ein- oder ausblenden
Autor Nachricht
zausel76
Threadersteller

Dabei seit: 31.08.2006
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 31.08.2006 14:37
Titel

Div,Layer mit JS ein- oder ausblenden

Antworten mit Zitat Zum Seitenanfang

hallo @all,

hab ein kleines problem. Es sind zwei Divs(layer) vorhanden:
Code:

<div name="zahlung1" id="zahlung1" style="display:none; visibility:visible; position:absolute; overflow:hidden; z-index:10;">Inhalt</div>
<div name="zahlung2" id="zahlung2" style="display:none; visibility:visible; position:absolute; overflow:hidden; z-index:10;">Inhalt</div>


Diese lass ich jetzt über ein Dropdown aus- oder einblenden:
Code:

<select name="zahlungsart" class="formular" onChange="wechseln(this);" style="width: 40mm">
          <option value="0" selected="selected">- ausw&auml;hlen -</option> 
          <option value="1">Kreditkarte</option>
          <option value="2">Bankeinzug</option>
</select>


Dazu benutze ich folgenden Javascript Code:


Code:

<script language="javascript" type="text/javascript">

function wechseln(selObj){
   var t, n=0, visi, posi, blok;
   n = selObj.options[selObj.selectedIndex].value;
   if (n!=0){
      for (var i=1; i<=document.adminForm.zahlungsart.length; i++){
         visi = (n==i) ? 'visible' : 'hidden'       
         posi = (n==i) ? 'relative' : 'absolute'       
         blok = (n==i) ? 'block' : 'none';
         ausblenden(i,visi,posi,blok);    
      }
   }else{
      if (document.all){
         // Microsoft-Modell
         for (var i=1; i<=document.adminForm.zahlungsart.length; i++){
            name = ("zahlung"+i);
            document.all[name].style.visibility ="hidden";
            document.all[name].style.position = "absolute";
            document.all[name].style.display = "none";
          }         
      } else if (typeof(document.getElementById)=="function") {         
         // wenn Netscape-Modell
         for (var i=1; i<=document.adminForm.zahlungsart.length; i++){
            name = ("zahlung"+i);
            document.getElementById("zahlung"+i).style.visibility ="hidden";
            document.getElementById("zahlung"+i).style.position = "absolute";
            document.getElementById("zahlung"+i).style.display = "none";
          }         
      } else {
         // wenn Modell nicht unterstützt
         alert("Ihr Browser wird nicht unterstützt.");   
      }
   }
}

function ausblenden(t,visi,posi,blok){
   var name;         
   if (document.all){
      // Microsoft-Modell
      name = ("zahlung"+t);
      document.all[name].style.visibility = visi;
      document.all[name].style.position = posi;
      document.all[name].style.display = blok;
      
   } else if (typeof(document.getElementById)=="function") {      
      // wenn Netscape-Modell
      document.getElementById("zahlung"+t).style.visibility = visi;
      document.getElementById("zahlung"+t).style.position = posi;
      document.getElementById("zahlung"+t).style.display = blok;
   
   } else {
      // wenn Modell nicht unterstützt
      alert("Ihr Browser wird nicht unterstützt.");   
   }
}      
</script>


Im Firefox funktioniert das wunderbar. Nur im IE wird der Layer "zahlung2" nicht angezeigt. Hat jemand vielleicht auf die schnelle ne Idee, was ich da falsch mache?

Danke schon mal im vorraus!

Gruß,
Steve


Zuletzt bearbeitet von zausel76 am Do 31.08.2006 14:55, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Cybaer

Dabei seit: 08.06.2006
Ort: Heidelberg
Alter: -
Geschlecht: Männlich
Verfasst Di 05.09.2006 07:52
Titel

Re: Div,Layer mit JS ein- oder ausblenden

Antworten mit Zitat Zum Seitenanfang

Ich weiß nicht, ob's dir konkret hilft, aber ...
zausel76 hat geschrieben:
Code:

<div name="zahlung1">Inhalt</div>

... das ist falsch. DIV hat, wie die meisten anderen HTML-Tags auch, kein NAME-Attribut.

BTW:
Zitat:

// Microsoft-Modell
document.all wird nur für den IE 4 benötigt - falls Du den sonst unterstützt.

Ab Version 5 unterstützt der IE auch das W3C-DOM (getElement...), das keineswegs "Netscape-Modell" heißt (das wäre document.layer).

Und als Abfrage reicht dafür einfach ein "if (document.getElementById)" (und auch sonst ließe sich der Code deutlich "straffen"). *zwinker*
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
 
Ähnliche Themen "1 Layer einblenden / 4 Layer ausblenden"-Problem
Layer ein- und ausblenden
[JS/CSS] Layer ein- und ausblenden?
Layer ausblenden?
mehre div layer einblenen und ausblenden
1 klick = 1 frame öffnen + layer ein-/ausblenden?
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.