Forum > Klientspråk > JavaScript
Hej!
Jag håller på och gör ett ajaxbaserat kommentarsystem. Det jag vill att den ska göra är att visa kommentarerna för inlägget när man klickar på knappen "Kommentarer". Just nu så fungerar bara knappen på det senaste inlägget. När man klickar på de resterande kommentarer knapparna så händer ingenting. Vad är problemet?
Koden för sidan: http://www.aspkoll.se/code/Index.asp?id=658
Javascript för sidan "<script type="text/javascript" src="dropdowncontent.js"></script>" (rad 10 i koden)
Det är för att javascript körs en gång, du få binda om dina events på din AJAX response data. Eftersom du inte postar knappt någon javascript så är det svårt att säga hur du skall göra, men efter du har ersatt HTML koden så få du köra om:
dropdowncontent.init("searchlink", "right-bottom", 500, "mouseover")
dropdowncontent.init("contentlink", "left-top", 300, "click")
OT:
Sen kolla upp din PHP kod lite, du skapar om variabler om och om igen (kolla din databas connection) om nu är samma värden räcker det ju att du skapar och skriver till variablen en gång med dina inlogg.
Sen CSS #clear, känns som det är onödig att sätta en clear: both på ett ID, detta är något du förmodligen kommer använda mer än en gång.
Nya html sidan: http://www.aspkoll.se/code/Index.asp?id=664
Hela Javascriptet: http://www.aspkoll.se/code/Index.asp?id=663
Det blev ingen skillnad mot innan när jag la in koden i "kommentarcontenten".
Det blev ingen skillnad mot innan när jag la in koden i "kommentarcontenten".Hjälper inte att flytta kod, du måste köra kod när det nya innehållet har renderats ut.
Hur går jag till väga för att göra detta då ?
spontan gissning, ändra:
loadpage:function(page_request, divId){
if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)){
document.getElementById(divId).innerHTML=page_request.responseText
}
}lägg in de två metoderna inne i den också, ananrs gå över till jquery eller annat ramverk som ta hand om AJAX på ett enklare sätt.
redigerad:
Glöm det jag skrev med att lägga in koden. Du har dubletter av IDn i din kod, kommer aldrig att fungera med Javascript. i CSS så "kan" du använda dig av fler än ett ID och webbläsaren rendera ut det rätt ändå, men det är omöjligt för javascript att plocka ut fler element än ett när du hämtar ID..
Det du kan göra är att sätta unika id:n på dom och kör skriptet (som du har flyttat i din #2 kod exempel) och säg att den skall köra det id:t och inte bara searchlink utan kanske searchlink_<id>
se bara till att det bli unikt på sidan.
Funkade, tack ännu en gång voigtan! :)