mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 25.04.2024 17:45 Benutzername: Passwort: Auto-Login

Thema: JS-Funktion funktiniert aber nicht richtig! vom 04.02.2011


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> JS-Funktion funktiniert aber nicht richtig!
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!

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
buddha-brot

Dabei seit: 24.01.2006
Ort: Süd/Süd-West
Alter: -
Geschlecht: Männlich
Verfasst Fr 04.02.2011 14:52
Titel

Antworten mit Zitat Zum Seitenanfang

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.
  View user's profile Private Nachricht senden
Anzeige
Anzeige
zweitaccount

Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 04.02.2011 15:54
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
Henrikx
Threadersteller

Dabei seit: 04.02.2011
Ort: Kiel
Alter: -
Geschlecht: -
Verfasst Fr 04.02.2011 16:20
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
zweitaccount

Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 04.02.2011 18:17
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
Henrikx
Threadersteller

Dabei seit: 04.02.2011
Ort: Kiel
Alter: -
Geschlecht: -
Verfasst Fr 04.02.2011 18:21
Titel

Antworten mit Zitat Zum Seitenanfang

Perfect !!! 1000 DANK!! * Applaus, Applaus *
  View user's profile Private Nachricht senden
Henrikx
Threadersteller

Dabei seit: 04.02.2011
Ort: Kiel
Alter: -
Geschlecht: -
Verfasst Fr 04.02.2011 20:25
Titel

Antworten mit Zitat Zum Seitenanfang

Ist es möglich da noch ein jquery toggle einzubauen?
  View user's profile Private Nachricht senden
zweitaccount

Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Sa 05.02.2011 18:39
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
 
Ä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
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


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.