You are not logged in.

  • Login

Dear visitor, welcome to Coder Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Monday, March 12th 2007, 1:51pm

Aufklappmenu Problem...

Hallo, hab da ein sehr schönes Aufklapmenu gefunden, nur das Problem ist, wenn ich "News" anklicke macht er es auf (was auch Ok ist), nur wenn ich dann "Nested Exemple" macht er es auch auf und schließt nicht "news"...

jetzt die eigendliche Frage, wie bekomm ich hin, wenn ich "news" oder "Nested Example" anklicke das er das davor wieder schließt???

JavaScript Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<style>
<!--
#foldheader{cursor:pointer;cursor:hand ; font-weight:bold ;
//list-style-image:url(fold.gif)}
#foldinglist{list-style-image:url(list.gif)}
//-->
</style>
<script language="JavaScript1.2">
<!--
 
var head="display:''"
img1=new Image()
img1.src="fold.gif"
img2=new Image()
img2.src="open.gif"
 
var ns6=document.getElementById&&!document.all
var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1
 
function checkcontained(e){
var iscontained=0
cur=ns6? e.target : event.srcElement
i=0
if (cur.id=="foldheader")
iscontained=1
else
while (ns6&&cur.parentNode||(ie4&&cur.parentElement)){
if (cur.id=="foldheader"||cur.id=="foldinglist"){
iscontained=(cur.id=="foldheader")? 1 : 0
break
}
cur=ns6? cur.parentNode : cur.parentElement
}
 
if (iscontained){
var foldercontent=ns6? cur.nextSibling.nextSibling : cur.all.tags("UL")[0]
if (foldercontent.style.display=="none"){
foldercontent.style.display=""
cur.style.listStyleImage="url(open.gif)"
}
else{
foldercontent.style.display="none"
cur.style.listStyleImage="url(fold.gif)"
}
}
}
 
if (ie4||ns6)
document.onclick=checkcontained
 
//-->
</script>
 
<ul>
   <li id="foldheader">News</li>
   <ul id="foldinglist" style="display:none" style=&{head};>
      <li><a href="http://www.cnn.com">CNN</a></li>
      <li><a href="http://www.abcnews.com">ABC News</a></li>
      <li><a href="http://www.news.bbc.co.uk">BBC News</a></li>
   </ul>
 
 
   <li id="foldheader">Nested Example</li>
   <ul id="foldinglist" style="display:none" style=&{head};>
      <li><a href="http://www.dynamicdrive.com">outer 1</a></li>
      <li><a href="http://www.dynamicdrive.com">outer 2</a></li>
      <li><a href="http://www.dynamicdrive.com">outer 4</a></li>
   </ul>
</ul>


oder bessergesagt, ich such dafür ein Aufklappmenu, was sich dann öffnet, wenn man den Nick anklickt...

JavaScript Code

1
2
3
// Show user
      users+="<TR valign='bottom'><TD align='right'>"+muted_link+info_link+pm_link+"</TD><TD align='left'><A href='#' onclick='parent.openProfileWindow("+user[i].ID+"); parent.focusInput(); return false;' style='color:"+user[i].Color+"; font-weight:bold;'>"+user[i].Name+"</A></TD></TR>";
    }


greets

2

Monday, March 12th 2007, 3:15pm

Ich hoffe es reicht dir eine Idee bzw. ein Lösungsweg, den ich immer verwende:

Erstelle gleich zu Anfang eine leere Variable. Wird nun zum Aufklappen auf solch eine Box geklickt wird nicht nur diese aufgeklappt, sondern auch in die zuvor erstellte Variable gespeichert, was so eben geöffnet wurde.
Außerdem wird vorher noch eine Funktion ausgeführt, mit der du die Boxen wieder schließen kannst. Sofern also in oldBox (s.u.) ein Wert, eine ID vorhanden ist, wird eine Funktion ausgeführt, die die alte Box wieder schließt.
Beachte dabei aber, dass du die Variable für die alte Box erst überschreibst, wenn du diese auch wirklich geschlossen hast. Sonst öffnet sich gar nichts, logisch.

Näheres im folgenden ungefähren Beispiel:

JavaScript Code

1
2
3
4
5
6
7
var oldBox = '';
 
function openBox(id) {
  if(oldBox != '') // alte Box schließen
  // neue Box öffnen
  oldBox = id;
}


Frag, wenn noch etwas undeutlich sein sollte.

3

Monday, March 12th 2007, 4:16pm

Hallo...

Okay danke... werd mal versuchen mich da ran zu begeben... Hab zwar nicht so die Ahnung von JS (fang gerade mal damit an) aber meld mich dann nochmal wie es ausgegangen ist...

greets

4

Monday, March 12th 2007, 6:38pm

Wenn es dir irgendwie weiterhilft, habe ich hier auch noch mal einen Link von einem geplanten ACP, dass diese Funktion in der Navigation ebenfalls besitzt. Vielleicht kannst du dir da rausfischen, was du brauchst, ist leider nur nicht sonderlich groß Kommentiert.

http://unschlau.unnett.de/

JavaScript Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// [...]
 
var hideOtherId = '';
var showActiveId = '';
 
// [...]
 
function hideBox(id) {
	box = document.getElementById(id);
	if(box.style.display == 'block') box.style.display = 'none';
	else box.style.display = 'block';
}
 
function hideOtherBox(id,parent) {
	if((OtherBox = document.getElementById(hideOtherId)) && hideOtherId != '' && hideOtherId != id)
		OtherBox.style.display = 'none';
	if(box = document.getElementById(id)) {
		box.style.display = 'block';
		hideOtherId = id;
	}else hideOtherId = '';
	showActive(parent);
}
 
function showActive(id) {
	if(showActiveId != '' && showActiveId != id)
		document.getElementById(showActiveId).className = '';
	document.getElementById(id).className = 'active';
	showActiveId = id;
}
 
// [...]

Social bookmarks