Diskuze: Machr na JavaScript – editor tabulek
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 18 zpráv z 18.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Další machr Super. V
JavaScriptu moc neumím, ale pokusím se, aspoň se něco přiučím
Už mám skoro hotovo, umí to měnit barvu textu, pozadí, rámečku, měnit
text na určité pozici ale nedaří se mi udělat, aby se přidal/odebral
řádek/sloupec Řádek mi jde,
ale pak nejde editovat, protože se mu nepřidělí id.
//EDIT: To políčko HTML kód asi nahradím něčím rozumnějším ... a umí to i mazat ^^
Hm, možná to taky zkusím, ale kdy tu bude nějaký machr na php ? či oop ?
řádek máš jednoduchý, sloupec je horší.
Nápověda pro všechny: zkuste se zamyslet nad tím, jak ta tabulka vypadá v HTML a pracujte sní tak. Vytvořit a vložit několik elementů není přece vůbec těžké.
V tom mám problém taky, zatím mám provizorně okopírování druhého řádku a vložení na konec. Taky nevím, jak to zdokonalit, nevím jak k tomu přidat id, které identifikuje který řádek a sloupec to je.
Můžeš využít data atributy a označit si to jako dvourozměrné pole
A nebo klidně i třídy, to už je v podstatě jedno.
Bude taky nějaký machr na webdesign ? Myslím, že jsem se v něm dost zlepšil.
brzy. Nový machr je každý týden a zatímco jeden ani neskončil, vy už zjišťujete kdy bude další.
Webdesign určitě někdy bude, ale na příští týden už mám vymyšleno něco jiného.
Dobře. Zase něco nového
Budou to webové technologie (PHP, HTML, CSS, JS) nebo desktopové (JAVA, C#)
nebo něco mezi (EFEKTY) ?
Ahoj, překvapilo mě, že jste to vzdali. Nakonec se našlo alespoň jedno řešení.
sidecek123: Tvoje řešení je relativně jednoduché. Skoro všechny práce v JavaScriptu s tabulkou je obcházena metodami jQuery. V jQuery máš rozhled, v čistém JavaScriptu nemáš ani tušení co všechno jde udělat. Když to ovládám pomocí tlačítek, vždy mi to zobrazí dialog a za ním další, co použití tlačítka to se to stupňuje. Aplikace je dosti těžkopádná, pokud bych ji chtěl nasadit třeba do CMS zde na ITnetwork, musel bych ji značně upravit. Nepoužíváš objekty a s aplikací je potřeba tahat jak CSS (to by až zas tak nevadilo), ale horší je dosti specifické HTML. Všude zbytečně voláš load, což ti znovu načítá obsluhy tlačítek, to ale není přece třeba. Když jsem každé zbytečné volání load zakomentoval aplikace fungovala stejně. Mícháš krásu jQuery a čistého JavaScriptu nevím proč používáš document.GetElementsByClassName, když v jQuery vybíráš pomocí CSS selektorů, funguje
$(".trida") // vrátí pole elementů
Řádky 108 – 133 máš nějak blbě odsazené, při vývoji složitější aplikace by se hodilo zachovat nějaké rozumné odsazení, aby se to nepletlo. Z jednoho tabu poskočíš na 4. Kód kopíruješ, podíváš-li se na to co obsloužíš po stisknutí klávesy a to co při stisknutí tlačítka, zjistíš, že je to úplně stejné. Nebylo by jednoduší dát to do funkce a tu na obou místech zavolat? Pokud bys totiž tento kód měnil, nemusel bys ho měnit na dvou místech. Zkus se podívat, jak se pracuje s elementy v čistém JavaScriptu, tabulku lze jednoduše zpracovat. Každá buňka mohla mít svůj input. JavaScript má cykl, cyklem si mohl v tabulce projít řádky a v každém řádku buňky. Bylo by to všechno mnohem jednodušší. Elementy mají vlastnost child (nebo children) a ta obsahuje pole potomků. Zkus se odpoutat od zlozvyku dávat HTML do stringu, jde to udělat lépe a později se to bude lépe zlepšovat. Rozšiřitelnost aplikace pokulhává, pokud bych chtěl implementovat jiný formát výstupu, jediné co můžu udělat je předělat tvůj kód. JavaScript je jazyk, kde na jednom místě nemusí být vůbec nic anebo tam může být všechno, navíc jen někdy. Využiješ toho však asi až se v JavaScriptu naučíš programovat objektově, pak stačí vědět, že jednoduše vytvoříš objekt daného „jazyka“, bude mít metodu Export, která si vezme jako parametr tabulku a vrátí třeba string s výsledkem, tento objekt předáš nějakému generátoru editora a ten zavolá metodu Export, kdy potřebuje. Tím že všude může mít něco a nic (zde metoda Export) nikdo nebrání, že když chceš jiný generátor, prostě dáš jiný objekt co má metodu Export. JavaScriptu je jedno jestli předávaný objekt je instance od CsvGenerator nebo TexyGenerator, pokud bude mít metodu Export, bude spokojen. V takovémto návrhu není problém pak třeba doimplementovat metody pro import, prostě každý generátor výstupu bude umět i ze stringu (nebo souboru, to už je jedno) vytvořit HTML tabulku a tu předá generátoru.
Protože se nenašel nikdo jiný kdo by se tím prokousal, tak ačkoliv v jeho řešení byli nedostatky, placku získává adas. Prosím, zažádej o redaktorská práva a publikuj řešení.
Mínuskujte si mě, jak chcete. Auru to ubírá vám, chtěl jsem se jen
zeptat. Gratuluji sidecek123
Sakra ! A já se těšil
Na hlavní stránce jsem (dnes!) uviděl machra, přečetl jsem si zadání,
zajásal jsem, že to bude sranda a pak jsem uviděl deadline ..
adas.. příště piš dřív ..
Zobrazeno 18 zpráv z 18.