+ 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 ist ein richtiges Arbeitstier - DANKE Cybergreek ist ein richtiges Arbeitstier - DANKE Cybergreek ist ein richtiges Arbeitstier - DANKE Cybergreek ist ein richtiges Arbeitstier - DANKE Cybergreek ist ein richtiges Arbeitstier - DANKE Cybergreek ist ein richtiges Arbeitstier - DANKE Avatar von Cybergreek
    Registriert seit
    Nov 2005
    Ort
    Köln
    Beiträge
    1.487
    Blog-Einträge
    1
    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.249
    Blog-Einträge
    3
    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.
    ----------
    follow TP

  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 ist ein richtiges Arbeitstier - DANKE Cybergreek ist ein richtiges Arbeitstier - DANKE Cybergreek ist ein richtiges Arbeitstier - DANKE Cybergreek ist ein richtiges Arbeitstier - DANKE Cybergreek ist ein richtiges Arbeitstier - DANKE Cybergreek ist ein richtiges Arbeitstier - DANKE Avatar von Cybergreek
    Registriert seit
    Nov 2005
    Ort
    Köln
    Beiträge
    1.487
    Blog-Einträge
    1
    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.249
    Blog-Einträge
    3
    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.
    ----------
    follow TP

  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.249
    Blog-Einträge
    3
    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.
    ----------
    follow TP

  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

Aktive Benutzer

Aktive Benutzer

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

     

Ähnliche Themen

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

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein

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