Permalänk
Inaktiv

Hjälp med jQUERY.

Hej!

Skriver för en familjemedlems räkning, denne har ej medlemskap här.
En enkel köplist/todo list är skapad i jquery. Enda som fattas är att få texten att ändra färg eller få line-through efter att man checkat i boxen.
Kan någon ge tips. Koden är som följer.

Html

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min..."></script> <script src="koplistany.js"></script> </head> <title>Köplista</title> <body> <div class = "container"> <div class = "row"> <div class = "col-md-6 col-md-offset-3 col-xs-6 col-xs-offset-3"> <div class="page-header"> <h1>Köplista.</h1> <form class="form-horizontal"> <div class="form-group"> <div class="col-sm-10"> <input type="text" class="form-control" id="newTodo" placeholder="Mjölk"> </div> <button type="button" id="addItem" class="btn btn-success">Lägg till</button> </div> </form> </div> <ul id = "todos"> </ul> </div> </div> </div> </body> </html>[/i]

java

$(document).ready(function(){ $('#addItem').on('click', addItem); $('#newTodo').on('keypress', function(event){ if(event.which === 13) { addItem(); event.preventDefault(); } }); function addItem(event) { var newTodoText = $('#newTodo').val(); $('#todos').append('<li><input class = "completeItem" type = "checkbox">' + newTodoText + '</li>'); $('#newTodo').val(""); } });

Permalänk
Medlem

Gör [ code][./code] värden utan dot

Snälla för gudsskull skapa allting i ett kod värde minimera radbrytning och gör tab slag så folk faktist kan läsa ut koden i ett sevärdigt sätt. sättet F betyg i utskriften på dig.

Det är inte meningen behöva scrolla på en 34" skärm för ha översikt över hela koden.

För det första så ser jag inte mycket av din funktion, för de andra så har du inget true eller false för markera om text är markerad eller inte.

Permalänk
Inaktiv

@UMJ: Tack, undrade hur man gjorde det. Fixat

Permalänk
Medlem
Skrivet av anon284015:

@UMJ: Tack, undrade hur man gjorde det. Fixat

Just för klargöra vilken div vill du ha markerad, eller är det bara en checkbox eller input?

Såg att du uppdaterad posten till mer läsvänlig utformning.

Permalänk
Inaktiv
Skrivet av UMJ:

Vad är det med 5 radbrytningar? du gör fortfarande sidan extrem lång, gör endast 1 radbrytning när de kommer till ny händelse. Detta är för kunna skriva in notifikationer eller markera att nästa linje av kod handlar om en ny funktion eller händelse.

Andvänd helst också // Beskrivning när de kommer till ny händelse, detta underlättar i framtiden om en annan kodare ska ta över jobbet efter dig att hitta igen kod som tillhör en viss funktion eller loop, och göra dokumentet sökbart också.

Om det inte blir en ny funktion eller ny händelse så sitter man bara med TAB och allting inom samma DIV borde linga i näst intill varandra medans en annan div ligger tabbad en bit ifrån.

Som det är nu krävs det extremt mycket tid för se vad som gör vad.

Edit. Såg att du ändrat svar. Tack. Jag är ingen kodare, därför frågar jag här eftersom jag personligen inte kan erbjuda någon hjälp. (Jag hatar programmering djupt och innerligt)

Permalänk
Medlem
Skrivet av anon284015:

Nå då behöver du inte besvära dig. Next!!

Vid en checkbox markerning och kryssa i den så kör du med

$(".värdet").selected(true); eller $(".värdet på box").checked(true);

utgår ifrån att det är en checkbox du vill ha markerad då de är en inköps lista och inte en text som tidigare var skriven om.

Permalänk
Inaktiv

@UMJ: I nuläget är det en extremt enkel lista med en knapp för att lägga till ny text med en checkbox framför. Det vi är ute efter är att texten skall ändra färg eller bli genomstreckad när man trycker på checkboxen.

Permalänk
Medlem
Skrivet av anon284015:

@UMJ: I nuläget är det en extremt enkel lista med en knapp för att lägga till ny text med en checkbox framför. Det vi är ute efter är att texten skall ändra färg eller bli genomstreckad när man trycker på checkboxen.

De är samma sak kör med ture när någon checkar sedan kan du köra överstryckning av en div när boxen är markerad eller ikryssad.

Har med erfarenhet av att folk inte lär sig koda om någon annan gör jobbet åt folk, så ska hänvisa dig till en bra källa för just checkboxar, prova kommer finnas här erbjuda hjälp om framtida kod är minimala fel, försök också sätta dig in i vad varje rad gör och inte gör, och inom snart framtid blir du Expert på Jqury det är bland av de lättaste delarna och lära sig

https://api.jquery.com/checkbox-selector/

Permalänk
Medlem

Hittade en JSFiddle som kanske kan vara till nytta:

http://jsfiddle.net/arunpjohny/7eh9G/

Visa signatur

Grubblare

Permalänk
Inaktiv
Skrivet av drwlz:

Hittade en JSFiddle som kanske kan vara till nytta:

http://jsfiddle.net/arunpjohny/7eh9G/

Okej, ser ju ut som det jag vill ha? Men hur kopplar man det till de nya objekten som skapas när man lägger till "todos"?

Sen gnäller Brackets på att $ är undefined? På samtliga $ i koden?

Permalänk
Medlem

Ge varje ny rads text ett ID som är typ rad1, rad2, rad3 osv
sedan ger du checkboxen ett värde som motsvarar idt du nyss skapade

då när en checkbox blir checkad kan du kolla dens värde, och göra vad du vill med det id't

Visa signatur

CPU: Ryzen 9 3900x Noctua NH-D14 MOBO: TUF Gaming X570-PLUS GPU: GTX 980 RAM: 32 GB 3200 MHz Chassi: R4 PSU: Corsair AX860 Hörlurar: SteelSeries 840 Mus: Logitech G502 Lightspeed V.v. nämn eller citera mig för att få svar.

Permalänk
Inaktiv

Fortfarande helt oförstående??? Jag kan verkligen inte detta. Det kanske är mycket begärt men kan någon säga exakt hur jag ska ändra i koden för att få denna enkla funktion?

Permalänk
Inaktiv
Skrivet av UMJ:

Vid en checkbox markerning och kryssa i den så kör du med

$(".värdet").selected(true); eller $(".värdet på box").checked(true);

utgår ifrån att det är en checkbox du vill ha markerad då de är en inköps lista och inte en text som tidigare var skriven om.

Vad är det i detta fall som skall vara i .värdet och .värdet på box???

Permalänk
Medlem

@anon284015:

Det är ju kopplat genom jquery-selectorn 'input:checkbox'(input-fält av typen checkbox).
Borde bokstavligen bara kunna kopiera in det i din kod. Lägg till en span runt texten bara.

Alternativ kan du väl byta ut "input:checkbox" till ".completeItem"

$(document).ready(function(){ $('input:checkbox').on('change', function () { var input = $(this).next('span'); if (this.checked) { $(input).css('textDecoration', 'line-through'); } else { $(input).css('textDecoration', 'none'); } }) $('#addItem').on('click', addItem); $('#newTodo').on('keypress', function(event){ if(event.which === 13) { addItem(); event.preventDefault(); } }); function addItem(event) { var newTodoText = $('#newTodo').val(); $('#todos').append('<li><input class = "completeItem" type = "checkbox"><span>' + newTodoText + '</span></li>'); $('#newTodo').val(""); } });

Visa signatur

Ryzen 5600X | MSI Tomahawk | GTX 3070

Permalänk
Inaktiv

Tack för hjälpen, det är fixat nu