Avatar billede danco Nybegynder
02. april 2012 - 16:24 Der er 2 kommentarer og
1 løsning

jQuery - Indsætte elementer on the fly

Hej eksperter,
jeg er lidt af en javascript/jQuery noob og derfor får I lige et spørgsmål fra mig.
Jeg sidder og laver et interface hvor det skal være muligt at designe en A4 side med tekstblokke og billeder, derfor vil jeg gerne kunne tilføje in the fly, denne del har jeg fået løst.
Nu vil jeg så gerne give muligheden for at ændre forskellige ting på specifikke blokke.
Jeg forestiller mig at flowet vil være at man klikker på et element og derefter kan ændre attributter i et side panel.

Som en lille side bemærkning kan jeg nævne at det på sigt skal gemmes i en database med elementernes placering, størrelse, styling osv. så hvis I har det med i overvejelserne ville det være fantastisk.

Jeg har lagt mit forløbige arbejde på nedenstående link så I kan se det.
http://www.danco.dk/designer/index.html
Avatar billede Slettet bruger
02. april 2012 - 23:38 #1
Sjovt projekt : )
- men også et stort et...

Du skal nok arbejde med (mindst) 2 typer af blokke (tekst og billede) med hver deres properties.

Når du klikker på et element, suges de relevante properties ud af elementet med en LAANG stribe:
fontSize = $("#element-id").css("font-size")
fontFam = $("#element-id").css("font-family")
BwL = $("#element-id").css("border-width-left")
osv. (der er reelt hundredevis..)

Vises i dit sidepanel, hvor man så med dropdowns, checkbokse osv. kan ændre dem.
- og straks se ændringerne live:
$("#element-id").css("font-size","21px")
$("#element-id").css("fony-family","Trebuchet MS")
$("#element-id").css("border-width-left","2px")
osv.

Save-funktionen må så gemme alle værdierne (nok lettest som JSON i ét stort tekst-felt i db'en)

Men hvad med indholdet i hver tekst-blok - kun én slags ?
- så hvis forfatteren vil skifte farve, må hun bare oprette en ny blok..
(skal så være let at kopiere, i hvertfald)

Jeg har faktisk lavet (noget af) CSS-delen på DagForDag.dk - billede her: http://dagfordag.dk/Demo/index.html?show=Design
- men jeg arbejder kun med én blok - og CKeditor til indholdet i den..
Avatar billede danco Nybegynder
03. april 2012 - 00:43 #2
Mange tak for dit svar. Jeg har dog fået løst problematikken ved at bruge følgende ved oprettelse:

$('#element'+count).bind('click',function(event) { handleClick(event); });

Men ja, du har nok ret i at det bliver et større projekt, men også en dejlig udfordring.

Selvom du ikke egentlig ramte plet gav du mig et hint omkring json som jeg ikke havde overvejet, derfor må du gerne ligge et svar så får du point :)
Avatar billede Slettet bruger
03. april 2012 - 08:24 #3
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester