Ganska snart efter att jag börjat med mina morgonkommentarer bytte jag från UL (alltså en punktlista) till OL (en numrerad lista) för att man skulle kunna hänvisa till en speciell kommentar i diskussionen. Då kunde man tex skriva ”kolla så fel ute @jocke är i #10 https://jardenberg.se/b/jardenberg-kommenterar-31-aug-2010-jjk/” – och så fick den som klickade sig in manuellt scrolla ner till kommentar nummer 10. Funkis, men inte så it.
Givetvis vill man ju använda ett ankare i URL:en så man kunde skriva ”kolla vilken briljant kommentar på https://jardenberg.se/b/jardenberg-kommenterar-31-aug-2010-jjk/#10” – och landa direkt på rätt ställe vid klicket.
Min plan var att nästa version av SharedItems2WP skulle stödja det, men i en diskussion på twitter idag växte en annan lösning fram. Och dagens hjälte är @mansj. Först lite försiktigt, men efter löfte om pilsner och kärlek kom en utfästelse.
Och nu ikväll kom ett mail. Gilla det här:
Det scriptet gör är att leta upp LI med rätt ordningsnummer inne i en OL inne i en div med id #content – allt enligt Thesis som du kör nu, och typ alla andra WP-teman.
När och om ett ankare med ett befintligt ID skickas in händer två saker:
- CSS-klassen “hereweare” läggs till på den LI som stämmer. Det kan du förstås enkelt ändra i scriptet. När jag testade hade jag bara “background-color: yellow” definierat på .hereweare.
- En window.scrollTo() hoppar ner till rätt LI.
Att känna till:
- Filen måste länkas in _efter_ att jQuery laddats i temat.
- Länkningen ska ske till postsidan, inte till förstasidan. Dvs https://jardenberg.se/b/jardenberg-kommenterar-31-aug-2010-jjk/#2 kommer att funka bra, men inte https://jardenberg.se/#2
Eftersom det är ankarlänkar så händer ju inget om du bara lägger till “#2” efter URL:en när sidan redan laddats. Gör en reload så ser du då vad som händer. Direktlänkar och klick på länkar med ankaret i kommer förstås att lira bra.
Här är filen: http://dl.dropbox.com/u/164449/hashnav.js
Visst är det helt enastående bra. #jjk blev genast ännu nyttigare. Internet, I kiss you. Och Måns Jonasson, en hink pilsner väntar dig.
Oops
Dumma Disqus och Twitter. Jag skulle ju inte posta som min fru. :)
Kul att se att det kom till användning. Men du valde att köra utan CSS-klass på det inlänkade?
Ser fram emot den där hinken med öl på Internetdagarna… :)
/M;
En sak i taget ;) Ska fixa CSS:en typ nu. Var bara tvungen att ta ett skypemöte först.
Aha. Trappimplementering. I like!
Done ;) Finfina grejor. Tusen tack!
Jag är så jävla avundsjuk på er som fixar sånt här.
Jag håller med… Jag sysslar ändå med mycket webbprylar i jobbet men såna här grejer blir liksom för mycket petande för ganska litet resultat. Heder åt alla som orkar!
Du får optimera och avbryta loopen när du hittat rätt element ;)
Hej hå, det här är väl internet. Här påpekar vi inte sånt, här fixar vi och kommer med en egen version. Forka loss bara ;)
Har inte kodat jquery men eftersom det är en kodrad blir det riktigt pinsamt om fixen ej skulle fungera ;)
Lägg in en rad till efter scrollfunktionen så avbryts allt.
window.scrollTo(pos.left, pos.top);
return false;
Vad hände med thesisfrågan. Skulle du inte lämna det temat
Jodå. Det ska jag fortfarande. Nytt tema är installerat, men det är mycket pillande. Ffa för att få backend i skick med rätt kategorier, seriöst upptaggat etc. Allt sånt man inte måste bry sig om när allting ändå publiceras rakt kronologiskt som nu.
Vad valde du för tema?
Det kan man ju göra. Men varför return false? return true vore ju korrektare i så fall. :)
/M;
Hehe, tar fram popcornen och kryper upp i soffan ;)
OOps, kommenterade fel sida, LOL
(Uppdaterat: haha, disqus och kod blev inte som tänkt..)
en liten detalj: såg just att html-koden såg lite underlig ut i listan:
li länkrubrik /li p kommentar
borde väl vara:
li länkrubrik p kommentar /p /li
kan fixa om du vill..=)
Jo, du har helt rätt. Jag har noterat att det blev helfel för länge sedan, men inte vågat ändra ;)
Fixar det när jag ändå lägger in nya temat. Då kommer allt att se illa ut ett tag…