Autor |
Nachricht |
El Barto
Threadersteller
Dabei seit: 15.04.2002
Ort: Spuckweite Enschede - NL
Alter: 43
Geschlecht:
|
Verfasst Do 17.03.2005 17:15
Titel JavaScript Problem! |
|
|
Hi an alle,
habe mal weider ein Problem mit JavaScript. Bin leider nich ganz so fit in JavaScript. Das Porblem was ich habe ist dieses Menu. Es klappt auf wenn ich einen Button klicke, das ist ja alles richtig, aber wenn ich einen anderen Button klicke soll sich der der vorher auf war wieder schließen, sprich es darf immer nur ein Button offen sein. Hier mal der Code:
Code: | <script language="JavaScript">
var nummenus = 8; // Number of menus
var titlearray = new Array(); // An array for the title objects
var submenuarray = new Array(); // An array for the submenu objects
if (document.layers) { // Set visibility for NN and IE
visible = 'show';
hidden = 'hide';
}
else
if (document.getElementById) {
visible = 'visible';
hidden = 'hidden';
}
// Fills the arrays with title and submenu objects
for (var i = 0; i < nummenus; i++) {
titlearray[i] = ('title' + i);
submenuarray[i] = ('submenu' +i);
}
// Changes image when category is clicked
function picopen(n) {
title = ('title' + n);
pic = ('pic' + n);
if (document.layers) {
document.layers[title].document.images[pic].src = "1.jpg";
}
else if (document.getElementById) {
//document.getElementById(pic).src = "1.jpg";
}
}
function picclose(n) {
title = ('title' + n);
pic = ('pic' + n);
}
function toggle(n,move) {
menu = ('submenu' + n);
if (document.layers) {
submenu = document.layers[menu];
}
else if (document.getElementById) {
submenu = document.getElementById(menu).style;
}
if (submenu.visibility == visible) {
submenu.visibility = hidden;
picclose(n);
for (var i = (n+1); i < nummenus; i++) {
if (document.layers) {
document.layers[titlearray[i]].top -= move;
document.layers[submenuarray[i]].top -= move;
}
else
if (document.getElementById) {
document.getElementById(titlearray[i]).style.pixelTop -= move;
document.getElementById(submenuarray[i]).style.pixelTop -= move;
}
}
}
else {
submenu.visibility = visible;
alert(n);
picopen(n);
for (var i = (n+1); i < nummenus; i++) {
if (document.layers) {
document.layers[titlearray[i]].top += move;
document.layers[submenuarray[i]].top += move;
}
if (document.getElementById) {
document.getElementById(titlearray[i]).style.pixelTop += move;
document.getElementById(submenuarray[i]).style.pixelTop += move;
}
}
}
lastmenu = submenu;
}
</script> |
Bitte um Hilfe!!!! Möglichst auch verständlich, denn ich würde es auch gerne verstehen wie es richtig geht.
Hier noch der aufruf auf der Buttons:
Code: | <div class="title" id="title0" style="position: absolute; z-index: 5; top: 0; left: 0; width: 90px; height: 28px">
<a href="#" onclick="javascript:toggle(0,40); return false;"><img name="pic0" src="../assets/1.gif" border="0"></a>
</div>
<div class="submenu" id="submenu0" style="top: 28px">
<%GetProdAllgemein "1001"%>
<%For i = 0 to Ubound(strTextID) %>
<a href="javascript:XFrames('right.asp?Area=ProdAll&ID=<%=strTextID(i)%>','right','main.asp?Area=ProdAll&ID=<%=strTextID(i)%>','main')"><%=strText(i)%></a><br>
<%Next%>
</div>
|
Also ihr JavaScript Füchse ... wer kann mir helfen?????
El Barto
|
|
|
|
|
El Barto
Threadersteller
Dabei seit: 15.04.2002
Ort: Spuckweite Enschede - NL
Alter: 43
Geschlecht:
|
Verfasst Do 17.03.2005 17:57
Titel
|
|
|
Keiner einen Rat?
Gehe hier echt langsam am Stock!
Naja ... vielleicht sind ja nachher noch ein paar JavaScript Füchse online.
Warte dann mal auf Antwort.
El Barto
|
|
|
|
|
Anzeige
|
|
|
fyll
Dabei seit: 20.09.2003
Ort: Augsburg
Alter: 39
Geschlecht:
|
Verfasst Fr 18.03.2005 11:53
Titel
|
|
|
Spontan fällt mir da jetz das ein:
(keine Ahnung, obs auch geht - und is wohl dir primitivste Lösung )
setz in den body irgendwo sowas hin:
Code: | <form name="xxx" action="#" style="display:none"><input type="hidden" name="xxx" value="1"></form> |
Das is nen Formular, in dem Temporär die ID des aktuellen Bildes gespeichert wird.
in der Funktion "picopen" musst halt jetz sagen, dass der das aktuelle ausblenden soll (Wert ja gespeichert), danach den Wert durch den neuen ersetzen, und fertig...
laso die funktion picopen sieht dann in etwa so aus:
Code: |
function picopen(n) {
title = ('title' + n);
pic = ('pic' + n);
picclose(document.xxx.xxx.value);
document.xxx.xxx.value = n;
if (document.layers) {
document.layers[title].document.images[pic].src = "1.jpg";
}
else if (document.getElementById) {
//document.getElementById(pic).src = "1.jpg";
}
} |
.. wie gesagt, nicht getestet, aber so in etwa musst das angehn...
Wobei ich mir das gern mal ansehen würde...Kannst das nicht fix wo hochladen? Der sollte normal doch das aktuelle nur ersetzen ud nicht das alte stehen lassen und ein neues aufmachen
Zuletzt bearbeitet von fyll am Fr 18.03.2005 12:01, insgesamt 1-mal bearbeitet
|
|
|
|
|
El Barto
Threadersteller
Dabei seit: 15.04.2002
Ort: Spuckweite Enschede - NL
Alter: 43
Geschlecht:
|
Verfasst Fr 18.03.2005 12:26
Titel
|
|
|
Danke erst einmal für die Antwort.
Aber das scheint nicht wirklich zu klappen. Wenn ich um die DIV eine Form packe verschwinden diese.
Gibt es denn keine einfache Lösung dafür?
Keine eine Idee?
Brauche wirklich dringend Hilfe!!!
El Barto
|
|
|
|
|
chrikle
Dabei seit: 02.05.2002
Ort: NRW
Alter: 47
Geschlecht:
|
Verfasst Fr 18.03.2005 12:30
Titel
|
|
|
Hast du das mal Online irgendwo zur Ansicht stehen?
Sprich das ganze komplette Script mit CSS und so . . .
Dann kann man sich besser was drunter vorstellen.
Gruß
Chris
|
|
|
|
|
El Barto
Threadersteller
Dabei seit: 15.04.2002
Ort: Spuckweite Enschede - NL
Alter: 43
Geschlecht:
|
Verfasst Fr 18.03.2005 12:37
Titel
|
|
|
Natürlich ...
hier ist der link klick hier!
Also hoffe das ihr damit mehr anfangen könnt ... ich bin am verzweifeln ... also brauche dringend Hilfe.
Muss das heute noch fertig bekommen!
El Barto
P.S. Funzt leider nicht im Firefox ... denke mir das das an den DIV liegt ... Layer und Firefox ist ja immer so eine Sache.
Zuletzt bearbeitet von El Barto am Fr 18.03.2005 12:38, insgesamt 1-mal bearbeitet
|
|
|
|
|
fyll
Dabei seit: 20.09.2003
Ort: Augsburg
Alter: 39
Geschlecht:
|
Verfasst Fr 18.03.2005 13:05
Titel
|
|
|
Ahhhlso....
Du hast die Bilder absolut positioniert... heißt, die bleiben, wo sie sind, was sie aber nicht sollen; also weg damit.
(man könnte natürlich in der funktion wen Wert "height" ändern, aber wär zu umständlich find ich...
Dann machst nen gaanz primitives Script, das einfach die Ebenen einblenden soll und alle anderen ausblenden soll...
Code: |
<div class="title" id="title10">
<a href="#" onclick="machauf(1)"><img name="pic1" src="http://www.eckenkreis.de/menu/1.gif" border="0"></a>
</div>
<div class="submenu" id="submenu1" style="display:none">
<a href="suche.html" target="main">Suche</a><br>
</div><br>
<div class="title" id="title2">
<a href="#" onclick="machauf(2)"><img name="pic2" src="http://www.eckenkreis.de/menu/2.gif" border="0"></a>
</div>
<div class="submenu" id="submenu2" style="display:none">
<a href="werbung.html" target="main">Werbung</a><br>
</div><br>
<div class="title" id="title3">
<a href="#" onclick="machauf(3)"><img name="pic3" src="http://www.eckenkreis.de/menu/3.gif" border="0"></a>
</div>
<div class="submenu" id="submenu3" style="display:none">
<a href="#" target="mitte">www.newgrounds.com</a><br>
<a href="#" target="mitte">www.fizefaz.de</a><br>
<a href="#" target="mitte">www.eckenkreis.de</a><br>
<a href="#" target="mitte">www.yahoo.com</a><br>
<a href="#" target="mitte">www.lycos.com</a><br>
<a href="#" target="mitte">www.fireball.com</a><br>
<a href="www.ulistein.com" target="mitte">www.ulistein.com</a><br>
<a href="#" target="mitte">www.newgrounds.com</a><br>
<a href="#" target="mitte">www.newgrounds.com</a><br>
</div><br>
<div class="title" id="title4">
<a href="#" onclick="machauf(4)"><img name="pic4" src="http://www.eckenkreis.de/menu/4.gif" border="0"></a>
</div>
<div class="submenu" id="submenu4" style="display:none">
<a href="#" target="mitte">www.newgrounds.com</a><br>
<a href="#" target="mitte">www.fizefaz.de</a><br>
<a href="#" target="mitte">www.eckenkreis.de</a><br>
<a href="#" target="mitte">www.yahoo.com</a><br>
<a href="#" target="mitte">www.lycos.com</a><br>
<a href="#" target="mitte">www.fireball.com</a><br>
<a href="#" target="mitte">www.ulistein.com</a><br>
<a href="#" target="mitte">www.newgrounds.com</a><br>
<a href="#" target="mitte">www.newgrounds.com</a><br>
</div><br>
<div class="title" id="title5">
<a href="#" onclick="machauf(5)"><img name="pic4" src="http://www.eckenkreis.de/menu/5.gif" border="0"></a>
</div>
<div class="submenu" id="submenu5" style="display:none">
<a href="#" target="mitte">www.newgrounds.com</a><br>
<a href="#" target="mitte">www.fizefaz.de</a><br>
<a href="#" target="mitte">www.eckenkreis.de</a><br>
<a href="#" target="mitte">www.yahoo.com</a><br>
<a href="#" target="mitte">www.lycos.com</a><br>
<a href="#" target="mitte">www.fireball.com</a><br>
<a href="#" target="mitte">www.ulistein.com</a><br>
<a href="#" target="mitte">www.newgrounds.com</a><br>
<a href="#" target="mitte">www.newgrounds.com</a><br>
</div><br>
<div class="title" id="title6">
<a href="#" onclick="machauf(6)"><img name="pic6" src="http://www.eckenkreis.de/menu/6.gif" border="0"></a>
</div>
<div class="submenu" id="submenu6" style="display:none">
<a href="#" target="mitte">www.newgrounds.com</a><br>
<a href="#" target="mitte">www.fizefaz.de</a><br>
<a href="#" target="mitte">www.eckenkreis.de</a><br>
<a href="#" target="mitte">www.yahoo.com</a><br>
<a href="#" target="mitte">www.lycos.com</a><br>
<a href="#" target="mitte">www.fireball.com</a><br>
<a href="#" target="mitte">www.ulistein.com</a><br>
<a href="#" target="mitte">www.newgrounds.com</a><br>
<a href="#" target="mitte">www.newgrounds.com</a><br>
</div><br>
<div class="title" id="title7">
<a href="#" onclick="machauf(7)"><img name="pic7" src="http://www.eckenkreis.de/menu/7.gif" border="0"></a>
</div>
<div class="submenu" id="submenu7" style="display:none">
<a href="#" target="mitte">www.newgrounds.com</a><br>
<a href="#" target="mitte">www.fizefaz.de</a><br>
<a href="#" target="mitte">www.eckenkreis.de</a><br>
<a href="#" target="mitte">www.yahoo.com</a><br>
<a href="#" target="mitte">www.lycos.com</a><br>
<a href="#" target="mitte">www.fireball.com</a><br>
<a href="#" target="mitte">www.ulistein.com</a><br>
<a href="#" target="mitte">www.newgrounds.com</a><br>
<a href="#" target="mitte">www.newgrounds.com</a><br>
</div><br>
<div class="title" id="title8">
<a href="#" onclick="machauf(8)"><img name="pic8" src="http://www.eckenkreis.de/menu/8.gif" border="0"></a>
</div>
<div class="submenu" id="submenu8" style="display:none">
<a href="#" target="mitte">www.newgrounds.com</a><br>
<a href="#" target="mitte">www.fizefaz.de</a><br>
<a href="#" target="mitte">www.eckenkreis.de</a><br>
<a href="#" target="mitte">www.yahoo.com</a><br>
<a href="#" target="mitte">www.lycos.com</a><br>
<a href="#" target="mitte">www.fireball.com</a><br>
<a href="#" target="mitte">www.ulistein.com</a><br>
<a href="#" target="mitte">www.newgrounds.com</a><br>
<a href="#" target="mitte">www.newgrounds.com</a><br>
</div><br>
<script type="text/javascript">
function machauf(bla) {
if(bla=="1") { document.getElementById('submenu1').style.display="inline"; } else { document.getElementById('submenu1').style.display="none"; }
if(bla=="2") { document.getElementById('submenu2').style.display="inline"; } else { document.getElementById('submenu2').style.display="none"; }
if(bla=="3") { document.getElementById('submenu3').style.display="inline"; } else { document.getElementById('submenu3').style.display="none"; }
if(bla=="4") { document.getElementById('submenu4').style.display="inline"; } else { document.getElementById('submenu4').style.display="none"; }
if(bla=="5") { document.getElementById('submenu5').style.display="inline"; } else { document.getElementById('submenu5').style.display="none"; }
if(bla=="6") { document.getElementById('submenu6').style.display="inline"; } else { document.getElementById('submenu6').style.display="none"; }
if(bla=="7") { document.getElementById('submenu7').style.display="inline"; } else { document.getElementById('submenu7').style.display="none"; }
if(bla=="8") { document.getElementById('submenu8').style.display="inline"; } else { document.getElementById('submenu8').style.display="none"; }
}
</script>
|
Oder so in etwa.
Das Script unten hab ich mit Absicht so unkomfortabel, damit du weißt, wie es funktioniert... natürlich geht das auch enfacher und variabler, aber soll ja dazu dienen, damit du weißt, was das macht.
Genau deshalb bin ich immer strikt gegen WYSIWYG-Progs oder fertige Scripts; zumindest wenn mans selber noch nciht so gut beherrscht...
TIP: erarbeite dir das Wissen selber, sonst hast von Anfang an verloren udn die "Wurzeln" deines HTML/JS-Wissens sind schon angefault *fg*
|
|
|
|
|
El Barto
Threadersteller
Dabei seit: 15.04.2002
Ort: Spuckweite Enschede - NL
Alter: 43
Geschlecht:
|
Verfasst Fr 18.03.2005 13:11
Titel
|
|
|
@ Ferret
Danke ... ich weiß, man sollte schon wissen was man da macht und auch verstehen wie es aufgebaut ist.
Aber ich danke Dir trotzdem für Deine Hilfe, so bekomme ich das heute doch noch fertig ... werde versuchen die faulenden Wurzeln zu verhinden. Ein JavaScript Buch hatte ich eh schon bei Amazon gebraucht bestellt.
Danke noch einmal, hast mir wirklich weitergeholfen!!!!!
El Barto
|
|
|
|
|
|
|
|
Ähnliche Themen |
Problem mit javascript im IE
JavaScript Problem im IE
Javascript problem
Javascript Problem im FF
JavaScript - Problem?
Javascript Problem
|
|