You are not logged in.

  • Login

IchDuErSieEs

Unregistered

1

Monday, October 31st 2011, 12:38pm

Erweiterung einer Togglefunktion

Hallo Forum,

ich habe im Netz ein JS-Script gefunden, mit dem ich 2 Div`s ein- bzw. ausblenden kann. Zusätzlich wird noch dem Link eine Class "active" bzw. "inactive" mit gegeben:

JavaScript Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function toggle_visibility(id, alink) {  
	var e = document.getElementById(id);  
 
	if (e.style.visibility == 'visible'){
 
		e.style.visibility = 'hidden';    
		if (alink) 
			alink.className = "inactive";  
 
	}  else {    
 
		e.style.visibility = 'visible';     
		if (alink) 
			alink.className = "active";  
 
	}
}


Die Funktion wird so aufgerufen:

Source code

1
2
› Text 1
› Text 2


Das funktioniert soweit auch recht gut, nur benötige ich noch folgende 2 weitere Funktionalitäten:
  1. Wenn ich "Text 2" aufrufe nachdem ich "Text 1" geöffnet habe, wird "Text 1" nicht wieder geschlossen, so dass ich die beiden Boxen übereinander liegen habe.
  2. In den Boxen habe ich noch einen Link zum Schließen der Box eingefügt....
    Wenn ich die Box hierüber schließe, dann wird den ursprünglichen Link nicht die CLASS "inactive" zugewiesen


Da ich leider kein Programmierer bin, bekomme ich es einfach nicht hin...

Könnt Ihr mir vielleicht weiterhelfen?

Vielen Dank im voraus!

IchDuErSieEs

//edit by vince - code formatiert

2

Monday, October 31st 2011, 6:16pm

Hallo Forum,

hallo :D

function toggle_visibility(id, alink) { var e = document.getElementById(id); if (e.style.visibility == 'visible'){ e.style.visibility = 'hidden'; if (alink) alink.className = "inactive"; } else { e.style.visibility = 'visible'; if (alink) alink.className = "active"; }}

Das nächste mal bitte nicht in einer Zeile ;)

Die Funktion wird so aufgerufen:

Seit wan ruft man so eine Funktion auf? 8|


Das funktioniert soweit auch recht gut, nur benötige ich noch folgende 2 weitere Funktionalitäten:
Wenn ich "Text 2" aufrufe nachdem ich "Text 1" geöffnet habe, wird "Text 1" nicht wieder geschlossen, so dass ich die beiden Boxen übereinander liegen habe.In den Boxen habe ich noch einen Link zum Schließen der Box eingefügt....
Wenn ich die Box hierüber schließe, dann wird den ursprünglichen Link nicht die CLASS "inactive" zugewiesen


HTML-Code? ;)

Da ich leider kein Programmierer bin, bekomme ich es einfach nicht hin...

http://www.w3schools.com/js/ ;)

3

Monday, October 31st 2011, 8:12pm

jQuery -> Toggle

Besser als der 20 Zeilige reine JS-Code ;)

IchDuErSieEs

Unregistered

4

Wednesday, November 2nd 2011, 8:00am

Hallo zusammen,
Das nächste mal bitte nicht in einer Zeile
Das habe ich versucht, nur wurden die Zeilenumbrüche wieder eingerückt... Ich habe mir den Text aus Notepad++ formatiert kopiert und hier eingefügt. In der Vorschau hat es auch noch richtig ausgesehen...
Seit wan ruft man so eine Funktion auf?
Sorry, wenn ich mich falsch ausgedrückt habe...
HTML-Code?
Hier der Ausschnitt aus dem Quell-Text (die Seiten werden mit dem CMS "Contao" erstellt):

Div mit den Links:

HTML Code

1
<div class="ce_text rechts block" id="alink">  <p class="box">    <a id="alink" class="inactive" title="› Link 1" onclick="toggle_visibility('beschreibung',this);">› Link 1</a><br />     <a id="alink" class="inactive" title="› Link 2" onclick="toggle_visibility('detail',this);">› Link 2</a>  </p></div>


Div mit den Boxen:

HTML Code

1
<div class="block" id="beschreibung">  <h1 class="box">Überschrift</h1>  <p class="box">Text... Text... Text...<span class="box"><a title="› zurück" ???>› zurück</a></span></p></div>


HTML Code

1
<div class="block" id="detail">  <h1 class="box">Überschrift</h1>  <p class="box">Text... Text... Text...</p></div>


http://www.w3schools.com/js/
Danke für den Link, aber ich befürchte in dieser Hinsicht bin ich ein ein hoffnungsloser Fall...

Nochmals Danke für eure Hilfe!
IchDuErSieEs

Social bookmarks