• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Div einmalig aufklappen - display:none oder display:block

LikeStar

New member
Hallo Leute :)

besteht die Möglichkeit per onclick einen DIV wieder einzublenden? :)

Mal angenommen ein DIV Container hat einen
HTML:
Style="display:none"

Ich möchte bitte, dass wenn ich auf ein LINK drücke, die mein DIV einmalig eingeblendet wird. Danach ist es nicht mehr möglich.

Ich bitte um ein Beispiel. Ich wäre euch da sehr verbunden.

Edit:

Ich benötige noch ein Beispiel:
Wenn ich auf ein LINK drücke, soll gleichzeitig ein anderer LINK sich von selbst tätigen. Es handelt sich aber hier nicht um window.location.
 
Zuletzt bearbeitet:
Code:
//var div = DIV-Container
div.onclick = function(){
  "use strict";
  if(div.style.display === "none"){
    div.style.display = "";
    //oder:
    div.style.display = "block";
    //oder:
    div.style.display = "inline";
  }
}

- - - Aktualisiert - - -

Ich benötige noch ein Beispiel:
Wenn ich auf ein LINK drücke, soll gleichzeitig ein anderer LINK sich von selbst tätigen. Es handelt sich aber hier nicht um window.location.
Handelt es sich dabei um eine damit verknüpte onclick-Funktion? Wenn ja, rufe diese doch einfach direkt per JS auf...
 
Hi und danke.

HTML:
//var div = DIV-Container

Muss ich dort eine ID oder ein CLASS eingeben?



Handelt es sich dabei um eine damit verknüpte onclick-Funktion? Wenn ja, rufe diese doch einfach direkt per JS auf...

HTML:
function Aendern1 () {
  tu Etwas;
  tu Etwas;
  Link B soll sich von selbst tätigen;
}
 
Zuletzt bearbeitet von einem Moderator:
Muss ich dort eine ID oder ein CLASS eingeben?
Weder noch, du musst das Element definieren. Das kannst du beispielsweise über document.getElementById("ID des div").

Was genau passiert jetzt durch das Anklicken von Link B? Wird die Funktion "Aendern1()" dadurch aufgerufen? Wenn ja, dann kannst du diese ja einfach im onclick direkt ausführen:
Code:
div.onclick = function()
  "use strict";
  if(div.style.display === "none"){
    div.style.display = "";
    //oder:
    div.style.display = "block";
    //oder:
    div.style.display = "inline";

    Aendern1();
  }
}
PS: du solltest aussagekräftige Funktionsnamen benutzen. Bei Namen wie "Andern1" verlierst du leicht den Überblick, und ein anderer kennt sich damit erst recht nicht aus...
 
Wenn Link B auch eine Funktion aufrufen soll, dann so:

Code:
function Aendern1 () {
Tu was;
Aendern2();
}
function Aendern2 () {
Tu was;
}

JULIAN war schneller
 
Zuletzt bearbeitet:
Ich habe es mittlerweile so umgesetzt:

js. Datei
HTML:
function toggleMe(a){
	
var e = document.getElementById(a);

// Prüfung exixtiert eine Element mit dieser ID?
if(!e)return true;

  // Umschaltung
  if(e.style.display == "none")
  {
  e.style.display = "block"
  }

return true;
}


Html Datei
HTML:
<div id="para11" style="display:none"></div>
<a href="javascript:void(0)" onClick="return toggleMe('para11')">LINK</a>


Ahh jetzt funktionierts! :D



An Alle Experten!

@dbarthel, @Julian,


Mein Code funktioniert nur für 1 Div Container. Leider gilt es nicht für alle DIVs mit der ID Para11
Kann ich dies auch für alle DIVS so umsetzen?

Normalerweise wird leider nur 1 Objekt eingeblendet. Das finde ich schade.
 
Zuletzt bearbeitet:
Um mit beliebigen Divs zu arbeiten, musst du deiner Funktion, mittels this.id, die Id des jeweiligen Divs übergeben.

Code:
toggleMe (this.id)
 
Ich habe im Übrigen viele Divs:

HTML:
<div style="display:none" id="para11">div1</div>
<div style="display:none" id="para11">div2</div>
<div style="display:none" id="para11">div3</div>
<div style="display:none" id="para11">div4</div>
<div style="display:none" id="para11">div5</div>


Mit einem Click

HTML:
<a href="javascript:void(0)" onclick="return toggleMe('para11');">Link</a>

sollen alle divs mit der ID="para11" wieder eingeblendet werden. :)
 
Das geht nur über eine Klasse.
Code:
<div class="para11">

Dann könntest du mit jquery nach dieser Klasse selektieren und einen .click Event definieren, der das display-Attribut ausliest und dann die Sichtbarkeit abändert.
 
Ja kann man und finde ich persönlich sogar gut geeignet.

Bin halt bei Jquery immernoch beim hinzuLERNEN.
 
Hi und danke für die Antworten.

Kann ich mein Code nicht einfach anpassen?
HTML:
function toggleMe(a){
	
var e = document.getElementById(a);

// Prüfung exixtiert eine Element mit dieser ID?
if(!e)return true;

  // Umschaltung
  if(e.style.display == "none")
  {
  e.style.display = "block"
  }

return true;
}

und statt documend.getElementById(a)

einfach documend.getElementByClass(a)

machen?
 
HTML:
function toggleMe(a){
	
var e = document.getElementByClassName(a);

// Prüfung exixtiert eine Element mit dieser ID?
if(!e)return true;

  // Umschaltung
  if(e.style.display == "none")
  {
  e.style.display = "block"
  }

return true;
}

Funktioniert leider niciht =/:icon8:
 
Du hast ja jetzt mehrere Elemente ausgewählt, du musst schon auch sagen, für welche die Funktion ausgeführt werden soll, und das var e= braucht es auch nicht.

Code:
var el=document.getElementsByClassName (a);

for (var i=0; i < el.length; i++;)
{
el[i].click()
}

Besser als ByClassName wäre es aber jquery zu benutzen, da ByClassName im IE nicht 100% funktioniert.
 
Zuletzt bearbeitet:
Du hast ja jetzt mehrere Elemente ausgewählt, du musst schon auch sagen, für welche die Funktion ausgeführt werden soll, und das var e= braucht es auch nicht.

Danke.


so schaut meine html seite aus:

HTML:
<a href="javascript:void(0)" onclick="return toggleMe('para11');">Link</a>

<div style="display:none" class="para11">div1</div>
<div style="display:none" class="para11">div2</div>
<div style="display:none" class="para11">div3</div>
<div style="display:none" class="para11">div4</div>
<div style="display:none" class="para11">div5</div>
 
Kannst dann in der For Schleife (siehe mein Post) einfach deinen Display-Aender-Code einfügen.

Sollte funktionieren.

Code:
If (el [i].style.display == "none")
{
el [i].style display = "block";
}

Ungetestet.
 
Zuletzt bearbeitet:
Zurück
Oben