zurück zur Startseite
  


Zurück XHTMLforum > (X)HTML und CSS > (X)HTML
Seite neu laden Wordpress: Anker-Link auf das letzte Kommentar auf einer Seite?

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 18.03.2010, 10:47
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 30.07.2009
Beiträge: 469
sepp88 befindet sich auf einem aufstrebenden Ast
Standard Wordpress: Anker-Link auf das letzte Kommentar auf einer Seite?

Hallo Leute,
meine Frage hat womöglich nicht sehr viel mit WP zu tun, da mein Anliegen sicherlich auch allgemein gilt.
Stellt euch vor, ihr lest einen Blogpost mit ca. 20 Kommentaren. Wordpress ist so aufgebaut, dass jeder Kommentar ja automatisch einen Permalink bekommt - im Grunde einfach einen Hashtag.

Die Nummer 27 bezieht sich immer auf die ID des Kommentars, das heißt pro Artikel startet dieser hashtag nicht mit 1 oder 0 sondern, mit der ID des letzten Kommentars. Wurden auf meinem Blog bereits 500 Kommentar geschrieben so startet der hashtag eines Kommentars bei einem neuen Artikel mit #comment-501.

Das mal als Einleitung. Ich würde jetzt gerne im single.php template, also der Seite auf dem jeder Artikel seperat angezeigt wird, ganz oben einen Link einfügen, bei dem man automatisch auf den letzten Kommentar auf DIESER SEITE springt.

Der Anker ist ja schon gesetzt, da jeder Kommentar ja automatisch #comment-letzteID bekommt. Allerdings weiß ich nicht wie ich per JS nun die HÖCHSTE ZAHL am Ende eines Hashtags abfragen kann? Oder wie würdet ihr das lösen.
Ich will einfach nur am Anfang jedes Artikels einen Link einfügen, der automatisch auf den letzten comment-letzteID hashtag verweist.

Wie kann ich das angehen?
Danke für die Hilfe und Auskunft.
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 18.03.2010, 15:23
sas sas ist offline
Neuer Benutzer
neuer user
 
Registriert seit: 17.03.2010
Beiträge: 17
sas befindet sich auf einem aufstrebenden Ast
Standard

Hallo. Such dir die ID der Kommentarbox heraus oder setze falls nötig eine. Dann versuche es mit folgendem

Code:
document.getElementById("__ID__").scrollIntoView();
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 18.03.2010, 15:30
sas sas ist offline
Neuer Benutzer
neuer user
 
Registriert seit: 17.03.2010
Beiträge: 17
sas befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von sas Beitrag anzeigen
Hallo. Such dir die ID der Kommentarbox heraus oder setze falls nötig eine. Dann versuche es mit folgendem

Code:
document.getElementById("__ID__").scrollIntoView();
Ich kann leider meine Beiträge nicht bearbeiten

Ich habe gesehen, dass die Elemente in einem Standard-Template in einem

HTML-Code:
<ol class="commentlist"> 
eingeschlossen sind. Entweder fügst du dort eine ID hinzu(einfacher) oder du suchst dieses Element. Hier ist eine Beispiel-Javascriptfunktion. gefunden auf Get Elements By Class Name - JavaScript - Snipplr

HTML-Code:
function getElementsByClassName(classname, node)  {
    if(!node) node = document.getElementsByTagName("body")[0];
    var a = [];
    var re = new RegExp('\\b' + classname + '\\b');
    var els = node.getElementsByTagName("*");
    for(var i=0,j=els.length; i<j; i++)
        if(re.test(els[i].className))a.push(els[i]);
    return a;
}
dann sähe dein Code wie folgt aus:

Code:
var MyElement = document.getElementsByClassName("commentlist","<ol>);
MyElement.scrollIntoView();
Mit Zitat antworten
  #4 (permalink)  
Alt 18.03.2010, 16:36
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 30.07.2009
Beiträge: 469
sepp88 befindet sich auf einem aufstrebenden Ast
Standard

Danke!
1.) scrollIntoView scrollt ja nicht an Ende meines Comment-containers. Ich will ja zum letzten Kommentar scrollen, wenn ich einen Link klicke.

2.) Mein Ansatz wäre der folgende: Da ich in meinem Projekt generell schon viel mit jquery arbeite, würde ich dem :last-child in meinem Kommentar-Container per jquery eine id mit "last-comment" verpassen. Dann wäre das Problem schon gelöst. Dann kann ich per Anker-Link einfach auf #last-comment verlinken und gut ist.

Allerdings weiß ich nicht ob in dem Fall die :last-child Pseudoklasse funktioniert. Mein Aufbau ist nämlich nicht so "einfach" wie du ihn beschrieben hast.

< #comment >
<. commentEntry >
<. commentEntry >
<. commentEntry >
<. commentEntry > <- das hier wäre das :last-child, hier sollte ein id="last-comment" hin!
</ #comment>

mit $('#comment:last-child').attr('id', 'last-comment'); funktioniert es leider nicht!

Geändert von sepp88 (18.03.2010 um 16:45 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 18.03.2010, 18:19
sas sas ist offline
Neuer Benutzer
neuer user
 
Registriert seit: 17.03.2010
Beiträge: 17
sas befindet sich auf einem aufstrebenden Ast
Standard

Hallo. ScrollInoView verhält sich funktional genauso wie ein "#Link"-Anchor. Das ist genau das was du möchtest. Von einer Pseudo-Klasse habe ich auch nicht gesprochen, sondern von der JS-Funktion. Das funktioniert genauso wie beschrieben und ist das was du möchtest.
Mit Zitat antworten
  #6 (permalink)  
Alt 18.03.2010, 19:00
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 30.07.2009
Beiträge: 469
sepp88 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von sas Beitrag anzeigen
Hallo. ScrollInoView verhält sich funktional genauso wie ein "#Link"-Anchor. Das ist genau das was du möchtest. Von einer Pseudo-Klasse habe ich auch nicht gesprochen, sondern von der JS-Funktion. Das funktioniert genauso wie beschrieben und ist das was du möchtest.
Das ist ja egal wie sich das verhält, oder nicht! Mein Problem ist ja nicht, dass ich nicht weiß wie ich auf einen Anker verlinke oder wie ich scrollIntoView verwenden kann. Es geht um das, dass ich ZUM LETZTEN KOMMENTAR ganz unten auf die Seite will. Da die Kommentare ja dynamisch generiert werden muss ich eben wissen wie ich dem LETZEN Kommentar (also dem letzten div mit der Klasse "commentEntry") eine ID geben kann, damit ich dieses auch ansprechen kann. Wenn ich scrollIntoView verwenden will, dann müsste ich ja auch dieses letzte div ansprechen und nicht den comment-container selbst.
Mit Zitat antworten
  #7 (permalink)  
Alt 18.03.2010, 19:44
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 30.07.2009
Beiträge: 469
sepp88 befindet sich auf einem aufstrebenden Ast
Standard

ich habe die lösung:
PHP-Code:
$('#comments .commentEntry:last').attr('id''last-comment'
jetzt hat mein letzter Kommentar auf einer Seite immer die id "last-comment". somit kann ich einen Anker setzen oder eben mit scrollIntoView auf das div verweisen.
Mit Zitat antworten
  #8 (permalink)  
Alt 18.03.2010, 21:30
sas sas ist offline
Neuer Benutzer
neuer user
 
Registriert seit: 17.03.2010
Beiträge: 17
sas befindet sich auf einem aufstrebenden Ast
Standard

Hallo. Du scheinst nicht zu verstehen, was ich geschrieben habe. Es ist im Grunde das gleiche auf eine andere Methode.

mit

[code]
var MyElement = document.getElementsByClassName("commentlist","<ol >);
MyElement[MyElement.length].id = "last-comment";
[/quote]
erreichst du das gleiche. Was ich geschrieben habe ist so schon völlig korrekt und funktional.
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wordpress Menu CorinG CSS 2 01.04.2011 15:07
Definitionsliste in einer Floatumgebung *pi CSS 11 07.01.2009 19:34
Sidebarlänge dem Content anpassen?! Pumpkin CSS 2 14.03.2006 18:21
Link um Seite zu drucken Philippp Offtopic 16 01.02.2005 22:15
Seite "halbiert" nach Klick auf Link - CSS Bug? Nina CSS 1 14.01.2004 15:20


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:51 Uhr.