Willkommen auf dem Portal für Mediengestalter
|
|
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 |
|
|
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ä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
|
|
|
|
|
Cybaer
Dabei seit: 08.06.2006
Ort: Heidelberg
Alter: -
Geschlecht:
|
Verfasst Di 05.09.2006 07:52
Titel Re: Div,Layer mit JS ein- oder ausblenden |
|
|
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").
|
|
|
|
|
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?
|
|
|
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.
|
|