Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 18. Juni 2012 12:35

brandy
Server-Pate
Registriert: 05. Juni 2011
Beiträge: 803
Webseite

[GELÖST] DIV nach Klick anzeigen

Hallo!

Wie der Titel sagt, möchte ich ein Div erst nach einen Klick auf auf einen Link anzeigen. Dass heißt ich habe verschiedene Bilder, die als Link dienen auf der Seite und bei Klick darauf, wird mir das Content-Div erst angezeigt. Am besten über der Navigation drüber.
Wie stelle ich so etwas am besten dar?

Beitrag geändert von brandy (21. Juni 2012 19:34)

Offline

#2 18. Juni 2012 13:49

serialpark
probiert CMS/ms aus
Ort: Berlin
Registriert: 24. Januar 2012
Beiträge: 52

Re: [GELÖST] DIV nach Klick anzeigen

via javascript / jquery

Beispiel

Offline

#3 18. Juni 2012 13:50

brandy
Server-Pate
Registriert: 05. Juni 2011
Beiträge: 803
Webseite

Re: [GELÖST] DIV nach Klick anzeigen

Genau das suchte ich - Vielen Dank!

Offline

#4 21. Juni 2012 19:36

brandy
Server-Pate
Registriert: 05. Juni 2011
Beiträge: 803
Webseite

Re: [GELÖST] DIV nach Klick anzeigen

Ich habs gerade eingebaut und leider etwas festgestellt - konntest du aber nicht wissen:
Ich möchte in diesem DIV meinen Content ausgeben. Im Link wird aber jetzt ja nicht mehr die Seite mitgegeben. Kann man das so umbauen, damit ich dort meinen Inhalt angezeigt bekomme?

Vielen Dank!

Offline

#5 21. Juni 2012 20:02

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: [GELÖST] DIV nach Klick anzeigen

Mal so als Ansatz:

<a href="{cms_selflink ... }" class="className">Link</a>
<div id="hiddendiv"></div>

<script link to jQuery></script>
<script>
$("#hiddendiv").hide();
$("a.className").preventDefault().click(function(e){
    $("#hiddendiv").toggle();
    return false;
});
</script>

Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#6 21. Juni 2012 21:02

brandy
Server-Pate
Registriert: 05. Juni 2011
Beiträge: 803
Webseite

Re: [GELÖST] DIV nach Klick anzeigen

Ich hab auch mal einen Vorschlag - er hat einen kleine Haken, funktioniert aber grundsätzlich:

Ich hab zum einen meine Links:

<a href="http://...." class="a1" onClick="anzeigen();">

Dann hab ich eine Javascript-Funktion:

<script type="text/javascript">
{literal}
function anzeigen() {
document.getElementById('hiddendiv').style.visibility = 'visible';
}{literal}

Im CSS ist die visibility auf hidden gestellt.
Ich schätze IHR werdet die Problematik an diesem Code schon sehen - hier aber das Problem:
Ich klicke auf den Link, er zeigt mir das DIV mit dem richtigen Inhalt an, leider aber lädt er noch und wenn er fertig geladen hat, ist mein Div wieder weg.

Offline

#7 21. Juni 2012 21:17

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: [GELÖST] DIV nach Klick anzeigen

Dein onclick-Event gibt nichts zurück.
Der muss false zurückgeben, damit der Browser dem Link nicht folgt:

<a href="http://...." class="a1" onClick="anzeigen();return false;">

Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#8 21. Juni 2012 21:38

brandy
Server-Pate
Registriert: 05. Juni 2011
Beiträge: 803
Webseite

Re: [GELÖST] DIV nach Klick anzeigen

Jetzt öffnet er mir den Link aber nicht mehr... Er lädt immer die Seite, die eh schon in der Adresszeile steht.

Offline

#9 21. Juni 2012 21:43

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: [GELÖST] DIV nach Klick anzeigen

Häh, was?
Sorry, ich check nicht was Du vorhast.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#10 21. Juni 2012 21:51

brandy
Server-Pate
Registriert: 05. Juni 2011
Beiträge: 803
Webseite

Re: [GELÖST] DIV nach Klick anzeigen

Naja das Div sollte mit dem passenden Inhalt on click angezeigt werden.
Zuerst hat ers immer nur während dem Laden angezeigt und jetzt lädt er gar nicht mehr...

Offline

#11 21. Juni 2012 21:54

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: [GELÖST] DIV nach Klick anzeigen

Sorry, ich check's immer noch nicht.
Du hast ein Div.
In dem steht etwas drin.
Und dieses Div mit seinem Inhalt soll erst angezeigt werden, wenn man auf einen Link klickt.
Aber dieser Link soll gleichzeitig auch noch eine Seite laden?

Was fällt dir auf?


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#12 21. Juni 2012 21:58

brandy
Server-Pate
Registriert: 05. Juni 2011
Beiträge: 803
Webseite

Re: [GELÖST] DIV nach Klick anzeigen

Grundsätzlich ist es ja so, dass wenn man einen Link anklickt der Inhalt im {Content} angezeigt wird. Der Content-Tag befindet sich jetzt aber in einem DIV, dass erst angezeigt wird, wenn man auf den Link klickt...
Ich hoffe es ist so verständlich...

Offline

#13 22. Juni 2012 22:00

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: [GELÖST] DIV nach Klick anzeigen

Hä?!?

Ich schwöre, es war nur Kaffee, Tee und Karottensaft heute!

Also nochmal langsam:

Du hast eine Seite.
Dort ist ein Div mit dem {content}.
Wenn die Seite geladen wird, ist dieses Div (noch) nicht sichtbar.

Du hast einen Link.
Der führt normalerweise zu einer Seite.
Und wenn Du da draufklickst, soll dieses Div mit Hilfe von Javascript angezeigt werden.
Aber gleichzeitig, soll die zugehörige Seite geladen werden.

Wenn die Seite aber geladen wird, ist dieses Div logischerweise wieder (noch) nicht sichtbar.
Weil das ja erst sichtbar wird, wenn man auf den Link klickt.
Wenn man aber auf den Link klickt, wird ja gleichzeitig die Seite wieder geladen ...

Merkst Du jetzt was?
Deine Anforderung ist mit den gegebenen Informationen schlichtweg nicht lösbar.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#14 22. Juni 2012 22:33

brandy
Server-Pate
Registriert: 05. Juni 2011
Beiträge: 803
Webseite

Re: [GELÖST] DIV nach Klick anzeigen

Ja ok schon klar...
Ich könnte einen Cookie setzen... Bei Klick wird eine Variable mit dem Wert 1 abgelegt. Ist dieser beim Neuladen "1" zeigt er das DIV an, ansonsten nicht...

Offline

#15 22. Juni 2012 22:39

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: [GELÖST] DIV nach Klick anzeigen

Sorry, aber entweder bin ich heute voll durch den Wind, oder wir reden einfach komplett aneinander vorbei.
Du hast ein Div. Und dort ist der {content} bereits drin. Nur wird er noch nicht angezeigt.
Wozu jetzt die Seite laden, wenn der Inhalt bereits da ist und nur sichtbar gemacht werden soll?
Ich verstehe die Situation einfach nicht.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#16 22. Juni 2012 22:46

brandy
Server-Pate
Registriert: 05. Juni 2011
Beiträge: 803
Webseite

Re: [GELÖST] DIV nach Klick anzeigen

Naja ich mache einen Refresh, er zeigt den Inhalt und das DIV an (so wie es sein sollte), lädt jedoch die Seite weiter und neu, so dass das DIV inklusive Inhalt wieder weg ist...

Offline

#17 22. Juni 2012 22:58

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: [GELÖST] DIV nach Klick anzeigen

Sag mal, machst Du das eigentlich gerade mit Absicht?
Ich schwöre hoch und heilig, dass ich mir echt Mühe gebe, Dein Problem zu verstehen um Dir zu helfen, eine Lösung zu finden, aber der Satz will einfach keinen Sinn ergeben.

Naja ich mache einen Refresh,

Einen was?
D.h. Du drückst F5 bzw. klickst beim Browser auf "Neu laden"?

er zeigt den Inhalt und das DIV an (so wie es sein sollte) [...]

Schön.
So weit so gut.
Also ist das Div doch nicht von Haus aus "hidden"?

[...] lädt jedoch die Seite weiter und neu

Äh ... und ab hier steig ich wieder aus.
Sorry, soll sich morgen jemand ausgeschlafeneres damit befassen.
Ich komm einfach nicht mit.
(Letzte Hoffnung: Hast Du vielleicht mal einen Link?)


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#18 22. Juni 2012 06:52

brandy
Server-Pate
Registriert: 05. Juni 2011
Beiträge: 803
Webseite

Re: [GELÖST] DIV nach Klick anzeigen

Nein ich erklär dir eh genau, was passiert...
Du verstehst es doch eh richtig. Es funktioniert wie jede Seite - Man klickt auf einen Link und der Inhalt wird in einem DIV, das den Content-Tag enthält angzeigt - klar oder?
Normalerweise ist das DIV immer sichtbar - in meinem Fall soll es aber erst sichtbar werden, nach dem man auf einen Link klickt, also wenn der Inhalt im DIV angzeigt wird...

Hier mal mein Template:

{process_pagedata}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<head>
<title>{sitename} - {title}</title>
{metadata}
<!--<meta http-equiv="X-UA-Compatible" content="IE=7" />-->
{cms_stylesheet}
<script type="text/javascript">
{literal}
function anzeigen() {
document.getElementById('hiddendiv').style.visibility = 'visible';
}
function nicht_anzeigen() {
document.getElementById('hiddendiv').style.visibility = 'hidden';
}
{/literal}
</script>
</head>
<body>
<div id="wrapper">
<div id="header">
<div id="header_text"><img src="/uploads/images/text_magu.jpg">
<span id="header_links">&raquo;Start &nbsp;&nbsp;&raquo;Kontakt</span>
</div>
<div id="header_magu"><img src="/uploads/images/magu.co.at.png"></div>
</div>
<div id="hiddendiv">{content}</div>
<div id="left">
<div class="b1"><a href="http://www.link.atindex.php?page=vws" class="a1" onClick="anzeigen();">VWS</a><a href="http://www.link.atindex.php?page=innenputz" class="a2" onClick="anzeigen();return false;">Innenputz</a></div><div class="b2"><a href="http://www.link.atindex.php?page=aussenputz" class="a3" onClick="anzeigen();">Aussenputz</a><a href="http://www.link.atindex.php?page=sanieren" class="a4" onClick="anzeigen();">Sanieren</a></div><div class="b3"><a href="http://www.link.atindex.php?page=bilder" class="a5" onClick="anzeigen();">Bilder</a><a href="http://www.link.atindex.php?page=bilder" class="a6" onClick="anzeigen();">Bilder</a></div><div class="b4"><a href="http://www.link.atindex.php?page=bilder" class="a7" onClick="anzeigen();">Bilder</a></div>
</div>
</div>
</body>
</html>

Offline

#19 22. Juni 2012 10:08

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: [GELÖST] DIV nach Klick anzeigen

Aha.
Na das ist doch etwas völlig anderes als einfach nur ein Div ein-/auszublenden.
Du hast den anzuzeigenden Inhalt noch garnicht.
Der muss also erst geladen werden.
Und anschließend soll der Inhalt in diesem DIV angezeigt werden.
Da gäbe es zwei Möglichkeiten.

1. Du gibst dem DIV im Stylesheet display:none und erst, wenn alles geladen ist, wird der Inhalt eingeblendet:

<script language="javascript" type="text/javascript" src=".../jquery.js"></script>
<script type="text/javascript">
{literal}
	$(window).onload(function(){
		$("#hiddendiv").slideDown();
	});
{/literal}
</script>

2. Du verwendest AJAX:

{process_pagedata}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
    <head>
        <title>{sitename} - {title}</title>
        {metadata}
        <!--<meta http-equiv="X-UA-Compatible" content="IE=7" />-->
        {cms_stylesheet}
        <script language="javascript" type="text/javascript" src=".../jquery.js"></script>
        <script type="text/javascript">
        {literal}
            $(document).ready(function(){
                
                var $ajaxLinks = $(".ajax_link");
                var $container = $("#hiddendiv");
                
                function bindEvent() {
                    $ajaxLinks
                        .unbind("click")
                        .click(function(){
                            $ajaxLinks
                                .removeClass("loading")
                                .unbind("click")
                                .click(function(){
                                    return false;
                                })
                            ;
                            $(this).addClass("loading");
                            loadContent(this.href);
                            return false;
                        })
                    ;
                    return false;
                }
                
                function loadContent(url) {
                    $container
                        .load(url + "&showtemplate=false", function(){
                            $container
                                .slideDown()
                            ;
                            bindEvent();
                            $(".current")
                                .removeClass("current")
                            ;
                            $(".loading")
                                .unbind("click")
                                .click(function(){
                                    return false;
                                })
                                .removeClass("loading")
                                .addClass("current")
                            ;
                        })
                    ;
                    return false;
                }
                bindEvent();
                
            });
        {/literal}
        </script>
    </head>
    <body>
        <div id="wrapper">
            <div id="header">
                <div id="header_text">
                    <img src="/uploads/images/text_magu.jpg">
                    <span id="header_links">&raquo;Start &nbsp;&nbsp;&raquo;Kontakt</span>
                </div>
                <div id="header_magu"><img src="/uploads/images/magu.co.at.png"></div>
            </div>
            <div id="hiddendiv">{content}</div>
            <div id="left">
                <div class="b1">
                    <a href="http://www.link.atindex.php?page=vws" class="a1 ajax_link">VWS</a>
                    <a href="http://www.link.atindex.php?page=innenputz" class="a2 ajax_link">Innenputz</a>
                </div>
                <div class="b2">
                    <a href="http://www.link.atindex.php?page=aussenputz" class="a3 ajax_link">Aussenputz</a>
                    <a href="http://www.link.atindex.php?page=sanieren" class="a4 ajax_link">Sanieren</a>
                </div>
                <div class="b3">
                    <a href="http://www.link.atindex.php?page=bilder" class="a5 ajax_link">Bilder</a>
                    <a href="http://www.link.atindex.php?page=bilder" class="a6 ajax_link">Bilder</a>
                </div>
                <div class="b4">
                    <a href="http://www.link.atindex.php?page=bilder" class="a7 ajax_link">Bilder</a>
                </div>
            </div>
        </div>
    </body>
</html>

Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#20 22. Juni 2012 10:47

brandy
Server-Pate
Registriert: 05. Juni 2011
Beiträge: 803
Webseite

Re: [GELÖST] DIV nach Klick anzeigen

Danke, werds am Nachmittag ausprobieren.
Stimmt, das der Inhalt erst geladen werden muss, wäre ein Hinweis gewesen - sorry...

Offline

#21 23. Juni 2012 22:41

brandy
Server-Pate
Registriert: 05. Juni 2011
Beiträge: 803
Webseite

Re: [GELÖST] DIV nach Klick anzeigen

Gut ich hab jetzt Variante 1 eingebaut.
Muss ich meinen Code dann noch drinnen lassen?
Ich hab ihn schon rausgenommen und drinnengelassen - beides funktioniert nicht...
Muss ich was spezielles beachten?

Offline

#22 23. Juni 2012 22:50

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: [GELÖST] DIV nach Klick anzeigen

Deinen Code kannst Du dann weglassen.
Wenn 1. nicht funktioniert (was genau funktioniert denn nicht? du brauchst jquery dazu.), probier mal 2.
Das hat bei mir mit einer Testinstallation ganz gut geklappt.
Aber vielleicht kenn ich auch wieder nicht alle Details wink



*...schlaaaaand!!!*  lol


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#23 23. Juni 2012 23:03

brandy
Server-Pate
Registriert: 05. Juni 2011
Beiträge: 803
Webseite

Re: [GELÖST] DIV nach Klick anzeigen

Hier wieder mal das Template:

{process_pagedata}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<head>
<title>{sitename} - {title}</title>
{metadata}
<!--<meta http-equiv="X-UA-Compatible" content="IE=7" />-->
{cms_stylesheet}
<script language="javascript" type="text/javascript" src="uploads/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
{literal}
	$(window).onload(function(){
		$("#hiddendiv").slideDown();
	});
{/literal}
</script>
</head>
<body>
<div id="wrapper">
<div id="header">
<div id="header_text"><img src="/uploads/images/text_magu.jpg">
<span id="header_links">&raquo;Start &nbsp;&nbsp;&raquo;Kontakt</span>
</div>
<div id="header_magu"><img src="/uploads/images/magu.co.at.png"></div>
</div>
<div id="hiddendiv">{content}</div>
<div id="left">
<div class="b1"><a href="http://www.magu.co.at/index.php?page=vws" class="a1">VWS</a><a href="http://www.magu.co.at/index.php?page=innenputz" class="a2" onClick="anzeigen();">Innenputz</a></div><div class="b2"><a href="http://www.magu.co.at/index.php?page=aussenputz" class="a3">Aussenputz</a><a href="http://www.magu.co.at/index.php?page=sanieren" class="a4">Sanieren</a></div><div class="b3"><a href="http://www.magu.co.at/index.php?page=bilder" class="a5">Bilder</a><a href="http://www.magu.co.at/index.php?page=bilder" class="a6">Bilder</a></div><div class="b4"><a href="#" class="a7">Bilder</a></div>
</div>
</div>
</body>
</html>

Das hiddendiv ist im CSS auf display: none; gestellt - wo wird dem div gesagt, dass es wieder angezeigt wird? Macht das alles die jquery? Diese wird übrigens perfekt geladen...
Ich teste jetzt gleich mal die AJAX-Methode...

Offline

#24 23. Juni 2012 23:09

brandy
Server-Pate
Registriert: 05. Juni 2011
Beiträge: 803
Webseite

Re: [GELÖST] DIV nach Klick anzeigen

Die Ajax-Methode lässt mein DIV auch nicht erscheinen...

Offline

#25 23. Juni 2012 23:11

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: [GELÖST] DIV nach Klick anzeigen

wo wird dem div gesagt, dass es wieder angezeigt wird?

Ooops.
Tippfehler.
Eigentlich damit:

$(window).load(function(){
	$("#hiddendiv").slideDown();
});

Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline