+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 15 von 18

Thema: Per Klick auf Links Div-Inhalt austauschen

  1. #1
    TP-Veteran Guitar ist auf einem guten Weg Avatar von Guitar
    Registriert seit
    Nov 2001
    Ort
    Friedrichshafen am Bodensee
    Beiträge
    1.065

    Per Klick auf Links Div-Inhalt austauschen

    Hallo,

    beschäftige mich erst seit ganz kurzer Zeit mit JQuery, benötige aber für ein Projekt folgende Funktion:

    Per Klick auf einen Link in einer Linkliste soll der INhalt eines Div-Containers per AJAX ausgetauscht werden (mit der entsprechenden URL).

    Hier mal eine rudimentäre Version des HTML:
    HTML-Code:
    <div id="inhalt">
    <p>Der Inhalt des Divs soll verändert werden</p>
    </div>
    
    <ul>
    <li><a href="seite1.html">Seite 1</a></li>
    <li><a href="seite2.html">Seite 2</a></li>
    <li><a href="seite3.html">Seite 3</a></li>
    .
    .
    .
    
    </ul>
    Die URL müsste also aus den Links ausgelesen und die entsprechende Seite in #inhalt geladen werden.

    Ich habe es mit $.ajax zwar schon hingekriegt, das ein neuer Inhalt geladen wird, aber wie schaffe ich es, das href-Attribut auszulesen?
    (Wenn das ganze noch mit einem Fadeout/FadeIn-Effekt passiert, wäre das das Sahnehäubchen ).

    Vielleicht kann mir jemand einen Tipp geben.
    Gruß, Wolfgang

    Webdesign Friedrichshafen

  2. #2
    TP-Moderator Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Avatar von Cybergreek
    Registriert seit
    Nov 2005
    Ort
    Köln
    Beiträge
    1.603
    Da Du ja schon einiges selbst hinbekommen hast mal nur ein Link
    Zitat Zitat von Guitar Beitrag anzeigen
    ...aber wie schaffe ich es, das href-Attribut auszulesen?
    http://docs.jquery.com/Attributes/attr#name
    Grüße vom Griechen,
    Cybergreek!

    everygain Translator - eine Firefox-Erweiterung, damit der Grieche Euch besser versteht

  3. #3
    TP-Specialist the0bone ist ein richtiges Arbeitstier - DANKE the0bone ist ein richtiges Arbeitstier - DANKE the0bone ist ein richtiges Arbeitstier - DANKE the0bone ist ein richtiges Arbeitstier - DANKE Avatar von the0bone
    Registriert seit
    Mar 2001
    Ort
    NDS
    Beiträge
    4.269
    the0bone

    Wissen ist Macht, nichts Wissen macht nichts! Doch auch auch wenn man es nicht besser weiss, sollte man beim Erstellen einer Webseite auf Frames und Tabellen verzichten.

  4. #4
    TP-Veteran Guitar ist auf einem guten Weg Avatar von Guitar
    Registriert seit
    Nov 2001
    Ort
    Friedrichshafen am Bodensee
    Beiträge
    1.065
    Okay, danke für die Links. Ein Problem noch:
    wie kann ich an die Funktion zum laden des neuen Inhalts die URL des angeklickten Links übergeben?
    Denn ich würde es gerne als normale Liste mit "echten" Links machen, damit die Seite auch ohne Javascript zumindest "normal" geöffnet werden würden.
    Gruß, Wolfgang

    Webdesign Friedrichshafen

  5. #5
    TP-Moderator Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Cybergreek lebt für das TP und seine User Avatar von Cybergreek
    Registriert seit
    Nov 2005
    Ort
    Köln
    Beiträge
    1.603
    Zitat Zitat von Guitar Beitrag anzeigen
    ...wie kann ich an die Funktion zum laden des neuen Inhalts die URL des angeklickten Links übergeben?
    Genau das solltest Du mit dem hinkriegen, was hinterm ersten Link steckt (also $("#irgendwas").attr("href")).
    Grüße vom Griechen,
    Cybergreek!

    everygain Translator - eine Firefox-Erweiterung, damit der Grieche Euch besser versteht

  6. #6
    TP-Veteran Guitar ist auf einem guten Weg Avatar von Guitar
    Registriert seit
    Nov 2001
    Ort
    Friedrichshafen am Bodensee
    Beiträge
    1.065
    Aber dafür müsste ich doch jedem Link eine eindeutige ID geben, oder?
    Gibt es nicht eine universellere Möglichkeit, so daß ich bei einer Erweiterung der Liste nicht den JQuery-Code anpassen müsste?
    Gruß, Wolfgang

    Webdesign Friedrichshafen

  7. #7
    TP-Specialist the0bone ist ein richtiges Arbeitstier - DANKE the0bone ist ein richtiges Arbeitstier - DANKE the0bone ist ein richtiges Arbeitstier - DANKE the0bone ist ein richtiges Arbeitstier - DANKE Avatar von the0bone
    Registriert seit
    Mar 2001
    Ort
    NDS
    Beiträge
    4.269
    Ja gibt es... jquery kann den href auslesen und nutzen... schaff ich aber heute nicht mehr!
    :-D
    the0bone

    Wissen ist Macht, nichts Wissen macht nichts! Doch auch auch wenn man es nicht besser weiss, sollte man beim Erstellen einer Webseite auf Frames und Tabellen verzichten.

  8. #8
    TP-Veteran Guitar ist auf einem guten Weg Avatar von Guitar
    Registriert seit
    Nov 2001
    Ort
    Friedrichshafen am Bodensee
    Beiträge
    1.065
    Hab's hinbekommen, und sogar so, dass die Navi bei deaktiviertem Javascript trotzdem funzt.

    Für alle, die's interessiert:
    HTML-Code:
    <?xml version="1.0" encoding="utf-8"?>
    <!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">
    
    <head>
      <title>Liste-Navi</title>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
      <script type="text/javascript">
      
      $(document).ready(function(){
      
      	// Innerhalb der Liste href auslesen und durch # ersetzen, title-Attribut mit dem Wert des href schreiben
      	$("ul.liste a").each(function(){
      	
      		var url = $(this).attr("href");
      		$(this).attr("title",url).attr("href","#");
      	
      	});
      	
      	// per Click entsprechende URL in das DIV laden, aber nur das DIV #seiteninhalt
      	$("ul.liste a").click(function(){
      		var quelle = $(this).attr("title") + " #seiteninhalt";
      		$("#container").load(quelle);
      	});
      
      });
      
      </script>
      <style type="text/css">
      	#container {
      		width: 400px;
      		height: 300px;
      		border: 1px solid #ccc;
      		padding: 1em;
      	}
      </style>
    </head>
    <body>
    <div id="container">
    Zu ersetzender Inhalt
    </div>
    <ul class="liste">
    	<li><a href="seite1.html">Seite 1</a></li>
    	<li><a href="seite2.html">Seite 2</a></li>
    	<li><a href="seite3.html">Seite 3</a></li>
    	<li><a href="seite4.html">Seite 4</a></li>
    	<li><a href="seite5.html">Seite 5</a></li>
    </ul>
    
    </body>
    </html>
    Weiss nicht, ob das die perfekte Lösung ist, aber sie funktioniert. Bin aber trotzdem für Verbesserungsvorschläge offen!
    Gruß, Wolfgang

    Webdesign Friedrichshafen

  9. #9
    TP-Specialist the0bone ist ein richtiges Arbeitstier - DANKE the0bone ist ein richtiges Arbeitstier - DANKE the0bone ist ein richtiges Arbeitstier - DANKE the0bone ist ein richtiges Arbeitstier - DANKE Avatar von the0bone
    Registriert seit
    Mar 2001
    Ort
    NDS
    Beiträge
    4.269
    Genau so hatte ich mir das gedacht. jquery das Dokument durchsuchen lassen und einfach die href Ziele überschreiben. :-)
    the0bone

    Wissen ist Macht, nichts Wissen macht nichts! Doch auch auch wenn man es nicht besser weiss, sollte man beim Erstellen einer Webseite auf Frames und Tabellen verzichten.

  10. #10
    TP-Veteran Guitar ist auf einem guten Weg Avatar von Guitar
    Registriert seit
    Nov 2001
    Ort
    Friedrichshafen am Bodensee
    Beiträge
    1.065
    Hm, kann ich das ganze jetzt noch irgendwie so umbauen, dass das DIV erst ausgefadet und wenn der Inhalt geladen ist, wieder eingefadet wird?
    Gruß, Wolfgang

    Webdesign Friedrichshafen

  11. #11
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    sicher. Vor load ausfaden, load hat die callback - Funktion, wo Du wieder einblenden kannst


    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer


  12. #12
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    also sowas sollte gehen:

    Code:
    $("#container").fadeOut(1000);
    $("#container").load(quelle, {}, function() { $("#container").fadeIn(1000); });


    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer


  13. #13
    TP-Veteran Guitar ist auf einem guten Weg Avatar von Guitar
    Registriert seit
    Nov 2001
    Ort
    Friedrichshafen am Bodensee
    Beiträge
    1.065
    Hi,
    damit funzt zwar das faden, aber man sieht den neuen Inhalt schon, bevor #container ausgeblendet wird.
    Gruß, Wolfgang

    Webdesign Friedrichshafen

  14. #14
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    dann musst Du eine pause einbauen, z.B. wie hier:
    http://www.learningjquery.com/2007/0...ct-delay-trick


    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer


  15. #15
    TP-Veteran Guitar ist auf einem guten Weg Avatar von Guitar
    Registriert seit
    Nov 2001
    Ort
    Friedrichshafen am Bodensee
    Beiträge
    1.065
    Okay, soweit funzt alles. Jetzt das nächste Problem:

    der einzubindende Code enthält auch einen Javascript-Block. Dieser wird nicht eingebunden. Ist das überhaupt möglich? Das restliche HTML erscheint wie gewünscht.
    Gruß, Wolfgang

    Webdesign Friedrichshafen

+ Antworten
Seite 1 von 2 1 2 LetzteLetzte

Ähnliche Themen

  1. Bilder per Klick austauschen
    Von The Phantom im Forum Javascript & Ajax
    Antworten: 5
    Letzter Beitrag: 09.06.2007, 13:11
  2. Per klick bewegliches bild mit inhalt
    Von VoD im Forum Webdesign allgemein
    Antworten: 1
    Letzter Beitrag: 05.06.2006, 09:39
  3. Bilder in Ebene on klick austauschen
    Von h.a.77 im Forum Dreamweaver & andere Webeditoren
    Antworten: 2
    Letzter Beitrag: 20.01.2006, 12:58
  4. Antworten: 4
    Letzter Beitrag: 19.12.2005, 11:21
  5. inhalt austauschen
    Von mohammad im Forum Dreamweaver & andere Webeditoren
    Antworten: 8
    Letzter Beitrag: 19.11.2003, 10:10

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51