Som besökare på Hamsterpaj samtycker du till användandet av s.k. cookies för att förbättra din upplevelse hos oss. Jag förstår, ta bort denna ruta!
Annons

Jquery

Skapad av bunny, 2013-06-13 21:41 i Webbutveckling & Programmering

1 745
7 inlägg
0 poäng
bunny
Visningsbild
P 29 Hjälte 1 272 inlägg
0
Hej, jquery problem ännu en gång. Jag har en feed, med posts. på varje post finns en knapp. trycker man på knappen så glider replys ut, med hjälp av jquery.

Sedan har jag en funktion som refreshar själva feeden, den ser ut såhär:

Visa spoiler
$(document).ready(function () {
if([removed].href.indexOf("global") > -1){
setInterval(function(){
$("#feedN").load("EXE/fetchfeed.php?feed=global");
}, 10 * 1000);
}
});


problemet är att efter den har refreshat feeden, så kan man inte längre trycka på knappen för att få ut replys. det händer ingenting.
Någon som kan förstå varför detta händer? / behöver mer information för att förstå vad problemet kan vara.

Väldigt tacksam för hjälp! :)

Tillägg av bunny 2013-06-13 21:42

"[removed]" blev tydligen borttaget av hamsterpaj i mitt script. Så ni vet ;)



Tillägg av bunny 2013-06-13 21:43

well... EDIT 2

"window . location" blir automatiskt borttaget av hamsterpaj. lolee

Ingen status

Är reklamen ivägen? Logga in eller registrera dig så försvinner den!

Tvillingen
Visningsbild
P 31 Hjälte 3 117 inlägg
0
Ett stycke javascript-kod:
$('.foo').on('click', function() {
console.log('a');
});


Har du exempelvis den här koden kommer console.log('a'); köras varje gång man klickar på ett element med klassen .foo ifall elementet fanns vid sidladdningen. Lägger du däremot till fler element på sidan dynamiskt kommer inte dessa ha detta event bundet till sig, så av den anledningen fungerar det inte.

Kör du däremot det här kommer det fungera oavsett när elementet lades till.
Ett stycke javascript-kod:
$(document).on('click', '.foo', function() {
console.log('b');
});


Här är ett exempel du kan testa.
http://jsfiddle.net/amcVy/

Kan läsa på mer i dokumentationen.
http://api.jquery.com/on/

Ett litet tillägg är att man kan köra .live(selector, handler) i tidigare versioner av jquery och fungerar som $(document).on(...), men ett tips är att alltid läsa dokumentationen det kommer man långt på!

Jag är ond!

bunny
Visningsbild
P 29 Hjälte 1 272 inlägg
Trådskapare
0

Svar till Tvillingen [Gå till post]:
härligt! Tack så jättemycket för hjälpen!

Men nu finns det ett till problem. När man trycker på "Replys" så åker replys ut. när sidan refreshas så hoppar ju alla lådor man tidigare tagit ut in igen. Kan man förhindra detta? Jag har ingen aning om hur. Verkar krångligt :/

Ingen status

Tvillingen
Visningsbild
P 31 Hjälte 3 117 inlägg
0

Svar till bunny [Gå till post]:
Varför ska dessa vara kvar ute efter att man har uppdaterat sidan? Är det data som postas gör du bättre i att använda dig av AJAX för att att skicka datan till servern, för då slipper du att hela sidan laddas om.

Vill du bara att det ska vara kvar även om du inte skickar data kan du spara information i kakor om vilka boxar man har öppnat. När sidan laddas om låter du antingen språket på servern, exempelvis PHP, lägga till klassen "open" på alla element som ska vara öppna. Sedan lägger du till i stilmallen hur elementen med klassen open ska visas. Andra alternativet är att göra precis samma sak, men du låter javascript hantera alla kakor och titta vilka element som var öppnade senast sidan visades.

Vill du inte använda kakor kan du även använda local storage, bara att söka på det + javascript. Då måste du dock lösa allt med javascript, för PHP skriptet kommer inte att komma åt vad som är sparat där såvitt jag vet.

Bara att sätta dig och läsa på om hur du hanterar kakor i javascript och möjligtvis PHP. Är inte allt för krångligt och jag skulle köra lösningen ihop med serversidan :)

Jag är ond!

bunny
Visningsbild
P 29 Hjälte 1 272 inlägg
Trådskapare
0

Svar till Tvillingen [Gå till post]:
oh, i see! Det är inte hela sidan som refreshas, det är bara själva feeden som refreshas. Men jag ska titta på kakorna! Låter som en bra lösning. Tack för hjälpen ännu en gång! :)

Ingen status

bunny
Visningsbild
P 29 Hjälte 1 272 inlägg
Trådskapare
0
Svar till Tvillingen [Gå till post]:
$(document).on('click', '.howManyComments', function() { $(this).parents('.postWrapper').children([2]).toggleClass('postReplyVisible');
$.cookie("test", 1);
});


Hur ska jag se till att den skapar en cookie med ett specifikt ID beroende på vilken post den ligger i? Alla poster han en egen ID.
Hur gör man en "toggleCookie"? Så att när man trycker på comments blir "openCookie513" = 1. Trycker man igen (den stängs ner) blir "openCookie513" = 0

och sen kör vi lite låtsaskod.
if openCookie"ID" = 1
div "ID" .toggleClass('postReplyVisible');

if openCookie"ID" = 0
div "ID" .removeClass('postReplyVisible');

Ingen status

Tvillingen
Visningsbild
P 31 Hjälte 3 117 inlägg
0
Här har du ett exempel på hur du kan göra, men sen får du anpassa det så att det fungerar med vad dina element har för namn och allt.

http://jsfiddle.net/37LWX/

Det du får göra är att lägga till data-postid på alla element, för då blir det lättare att plocka ut vad elementet har för ID istället för att böka med regex för att plocka ut det. Kör du med data-postid behöver du heller inte köra med .children([x]) utan kan använda dig av en selecor för att leta upp elementet med samma postID. Nu vet jag inte om det är ett bättre alternativ, men så skulle jag gjort :)

Nu när kakorna är satta är det bara att du med PHP sätter dit eller tar bort klassen postReplyVisible beroende på vad kakan har för värde. Du får även komma ihåg att det inte kommer att finnas kakor till alla element, så du får titta om en kaka finns först!

Jag är ond!


Forum » Datorer & IT » Webbutveckling & Programmering » Jquery

Ansvariga ordningsvakter:

Användare som läser i den här tråden just nu

1 utloggad

Skriv ett nytt inlägg

Hej! Innan du skriver om ett potentiellt problem så vill vi påminna dig om att du faktiskt inte är ensam. Du är inte onormal och världen kommer inte att gå under, vi lovar! Så slappna av och gilla livet i några minuter - känns det fortfarande hemskt? Skriv gärna ner dina tankar och frågor, vi älskar att hjälpa just dig!

Den här tråden är äldre än Rojks drömtjej!

Det senaste inlägget i den här tråden skrevs för över tre månader sedan. Är du säker på att du vill återuppliva diskussionen? Har du något vettigt att tillföra eller passar din fråga i en ny tråd? Onödiga återupplivningar kommer att låsas så tänk efter en extra gång!

Hjälp

Det här är en hjälpruta

Här får du korta tips och förklaringar om forumet. Välj kapitel i rullningslisten här ovanför.

Rutan uppdateras automagiskt

När du använder funktioner i forumet så visas bra tips här.


Annons
Annons
Annons
Annons