Autor |
Nachricht |
Henrikx
Threadersteller
Dabei seit: 04.02.2011
Ort: Kiel
Alter: -
Geschlecht: -
|
Verfasst Fr 04.02.2011 14:31
Titel JS-Funktion funktiniert aber nicht richtig! |
|
|
Hallo Zusammen,
Erstmal ein Lob an dieses Forum. Bis jetzt hat es mir sehr geholfen.
Ich bin leider ein Leihe was JS angeht, aber ich hab mir da was gebastelt was auch funktioniert - nur die Feinabstimmung will nicht nicht so richtig.
Also...
Ich habe eine bestimmte Anzahl von DIVs die mit onclick eines textes geöffnet werden. Wird ein div geöffnet schließen sich die anderen und wird es ein zweites mal geklickt schließt es sich selbst. Hoffentlich ist das verständlich.
Funtion
Code: |
function displayDiv(showDiv)
{
var myDivs = new Array("picssurf","picsskate","picstravel");
for (myDiv in myDivs)
{
if (document.getElementById(myDivs[myDiv]).style.display == 'block')
document.getElementById(myDivs[myDiv]).style.display = 'none';
else if
(document.getElementById(showDiv).style.display=='none')
document.getElementById(showDiv).style.display='block';
else document.getElementById(showDiv).style.display='none';
}} |
Nun hab ich folgendes Probleme.
Wurde das div einmal geöffnet, funktioniert die Funktion nicht mehr richtig. Soll nun das div erneut angezeigt werden, wird beim ersten klick das bereits offene div geschlossen und beim zweiten klick das neue geöffnet. dieses soll aber gleichzeitig passieren.
Irgendwie hab ich da einen Denkfehler drin, aber ich komm nicht drauf.
Ich hoffe ihr könnt mir vielleicht helfen.
Besten Dank!
Zuletzt bearbeitet von Henrikx am Fr 04.02.2011 14:33, insgesamt 1-mal bearbeitet
|
|
|
|
|
buddha-brot
Dabei seit: 24.01.2006
Ort: Süd/Süd-West
Alter: -
Geschlecht:
|
Verfasst Fr 04.02.2011 14:52
Titel
|
|
|
Ohne jetzt näher auf deinen Code hier einzugehen, aber...
Es gibt doch zig Akkordeon-Skripts. Da wird sicher auch das passende für dich dabei sein.
|
|
|
|
|
Anzeige
|
|
|
zweitaccount
Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Fr 04.02.2011 15:54
Titel
|
|
|
Code: | function displayDiv(showDiv)
{
var myDivs = new Array("picssurf","picsskate","picstravel");
for (myDiv in myDivs)
{
if (myDivs[myDiv] == showDiv)
{
document.getElementById(myDivs[myDiv]).style.display = 'block';
} else {
document.getElementById(myDivs[myDiv]).style.display = 'none';
}
}
} |
Grüße
|
|
|
|
|
Henrikx
Threadersteller
Dabei seit: 04.02.2011
Ort: Kiel
Alter: -
Geschlecht: -
|
Verfasst Fr 04.02.2011 16:20
Titel
|
|
|
danke für eure hilfe...
@ buddah brot danke für den Tipp. Hab was ganz gutes auf http://www.nyokiglitter.com/blog/fxaccordion
gefunden. So hübsch hätte ich das nie hinbekommen, aber der Ergeiz es halbwegs selber zu machen, ist ja schon da.
Einzige Nachteil bei diesem script ist, dass sich die Divs durch wiederholtes klicken nicht wieder schließen.
@zweitaccount
vielen dank.. aber die Divs lassen sich bei deiner Funktion durch wiederholtes klicken leider auch nicht schließen
|
|
|
|
|
zweitaccount
Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Fr 04.02.2011 18:17
Titel
|
|
|
Henrikx hat geschrieben: |
@zweitaccount
vielen dank.. aber die Divs lassen sich bei deiner Funktion durch wiederholtes klicken leider auch nicht schließen |
ups, völlig überlesen:
Code: | function displayDiv(showDiv)
{
var myDivs = new Array("picssurf","picsskate","picstravel");
for (myDiv in myDivs)
{
if (myDivs[myDiv] == showDiv && document.getElementById(showDiv).style.display != 'block')
{
document.getElementById(myDivs[myDiv]).style.display = 'block'
} else {
document.getElementById(myDivs[myDiv]).style.display = 'none';
}
}
} |
Grüße
|
|
|
|
|
Henrikx
Threadersteller
Dabei seit: 04.02.2011
Ort: Kiel
Alter: -
Geschlecht: -
|
Verfasst Fr 04.02.2011 18:21
Titel
|
|
|
Perfect !!! 1000 DANK!!
|
|
|
|
|
Henrikx
Threadersteller
Dabei seit: 04.02.2011
Ort: Kiel
Alter: -
Geschlecht: -
|
Verfasst Fr 04.02.2011 20:25
Titel
|
|
|
Ist es möglich da noch ein jquery toggle einzubauen?
|
|
|
|
|
zweitaccount
Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Sa 05.02.2011 18:39
Titel
|
|
|
Ja, anstatt display zu setzten müsstest Du halt ein
animate(..) starten:
http://docs.jquery.com/API/1.1/Effects/Animations#animate
Code: | $('#'+myDivs[myDiv]).animate({
height: 0
}, "slow"); |
z.B.
Und hier dann nicht auf != 'block' prüfen, sondern z.B. auf
height - ungefähr so:
Code: | if (myDivs[myDiv] == showDiv && $('#'+showDiv).height() == 0) |
Wenn Du aber sowieso die jQuery-Lib nutzt, dann kannst
Du das auch wesentlich eleganter lösen. Es gibt wie buddha-brot
schon bemerkte ja x Tutorials dafür:
http://docs.jquery.com/Special:Search?ns0=1&search=accordion
Und das mit dem Doppelklick-Verhalten, kann man später immer
noch reinwurschteln.
Grüße
zweitaccount
|
|
|
|
|
|
|
|
Ähnliche Themen |
Funktiniert das auch in CS2?
jquery sliding panel funktiniert nicht einwandfrei.
Online-Chat Funktion - mit On und Offline Funktion
Illustrator Funktion
toggle funktion ?
onclick funktion
|
|