JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Gyorskeresés
Legfrissebb anyagok
Általános témák
LOGOUT.hu témák
- [Re:] [D1Rect:] Nagy "hülyétkapokazapróktól" topik
- [Re:] [Sub-ZeRo:] Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- [Re:] Android másképp: Lineage OS és társai
- [Re:] [sh4d0w:] Windows Recall
- [Re:] Viber: ingyen telefonálás a mobilodon
- [Re:] [sziku69:] Fűzzük össze a szavakat :)
- [Re:] [Luck Dragon:] Asszociációs játék. :)
- [Re:] [attilasd:] A laposföld elmebaj: Vissza a jövőbe!
- [Re:] Okos Otthon kezdőknek
- [Re:] [sziku69:] Szólánc.
Szakmai témák
PROHARDVER! témák
Mobilarena témák
IT café témák
Téma összefoglaló
Hozzászólások
inf3rno
nagyúr
Sikerült közben a source maps-et is részlegesen működésre bírni: [link] Karma-val megy, sima browserify-olt forráskóddal is megy, egyedül jasmine nem jelzi a manuális HTML reporterével. Talán ki lehetne keresni, hogy karma hogyan csinálja, passz. Ami probléma, hogy ugyanezt a test bundle futtatásos megoldást használom babel-nél nodejs tesztelésre jasmine-el. Szóval nodejs-el nincs lehetőség normális debug-ra ha babel-t is használtok.
Nem tudom, hogy van e más lehetőség arra, hogy átfordítsam a kódot egyesével fájlonként, majd jasmine-el teszteljem. Elvileg az egész teszt mappát át kellene fordítanom valami babelify szerű libbel, aztán átnyomatni jasmine-en. Ehhez valami gulp-jasmine, vagy hasonló kellene, ami képes file stream-ekkel dolgozni. Megnézem, hogy van e ilyen. Ha igen, akkor ez a része megoldódott, és egyedül csak a manuális böngészős tesztelés nem fog menni HTML jasmine reporter miatt, ami talán nem egy nagy veszteség, karmával megy, böngészőben megy, ha betöltjük a bundle-t, egyedül ez a reporter nem tölti be a source map-et.
Buliban hasznos! =]
Sk8erPeter
nagyúr
"Szvsz a TDD nem advanced dolog, hanem alapvető, ha fejleszteni akarsz"
Bocs, de most már muszáj beszólnom, annyira folyamatosan erőlködsz ezzel a TDD-BDD-HDD-SSD-DDD-XXX-ASDASD-QWEQWE-BLABLA-HABLATY-vonallal (:]), hogy kezd már picit irritáló lenni. Azért komolyan kíváncsi lennék, hogy létezik olyan munkahely, ahol a fejlesztők tényleg MINDEN kódot TDD/BDD/akármi-vezérelt elven írnak? Van erre idő? (Persze elméletben ez is létezhet, ahol irreálisan nyugis a tempó.) Csak mert általában a megrendelők várnak a termékükre, a főnökök az eredményre (joggal), majd jön a következő feladat, és így tovább. Vagy ezek csak jól hangzó elvek, amiket a hobbiprojektjeidnél alkalmazol? Mert az egyébként úgy tök jó, és szép dolog, de amúgy akkor még csomó vezérelvhez tartozó mozaikszót vagy buzzwordöt be lehetne dobálni, ami a gyakorlatban azért inkább fenntartásokkal kezelendő, mert vagy működik, vagy nem, jó, ha sikerül annak mentén csinálni, de sokszor inkább az erre való törekvés jön csak össze (és már az is valami).
Sk8erPeter
inf3rno
nagyúr
Én jelenleg hobbi projekteknél fejlesztek így, most éles projektjeim nincsenek. Régebben éles projekteknél még nem ismertem ezeket a technikákat, személyes tapasztalatom annyi, hogy volt olyan projekt, aminél utólag írtam meg a teszteket, és az SQL-ek felében volt kisebb nagyobb hiba, amik nem derültek ki azonnal, mert csak ritkán használt útvonalakról volt szó.
Tudok olyan multiról, ahol TDD + SOLID + OOP alapvető, és a backend-et így fejlesztik, nem véletlenül írtam. Nem hinném, hogy nyugis munkahely lenne, inkább csak elvárják a minőségi kódot, meg egy méret (pár ezer sor) felett széthullik a szemét, amit tesztek nélkül fejlesztesz. A GUI-t nem feltétlen éri meg e2e tesztekről indulva fejleszteni, de azért érdemes lehet bedobni párat a fontosabb feature-ök ellenőrzésére, ha nem is minden apróbb hülyeségre. A DDD egy projekt méret felett éri meg jobban, mint a monolit, én személy szerint ezzel nem értek egyet, próbálom kisebb projekteknél is alkalmazni. Arra, hogy a TDD/BDD többlet idővel járna mutathatnál valami bizonyítékot, mert pont az ellenkezője igaz. Debugra összességében több idő megy el, mint arra, hogy a teszteket előre megírd, és az alapján fejlessz. Persze ha nem veszed komolyan az egészet, vagy nem fotnos a minőség, akkor nyugodtan fejleszthetsz tesztek nélkül is.
[ Szerkesztve ]
Buliban hasznos! =]
inf3rno
nagyúr
Sikerült közben megtákolnom babel-hez a node teszteket is. [link] most már van náluk is source map, azaz hogy nem tudom, hogy sourcemap, vagy mi alapján megy, de az eredeti fájlokat írja, amikben a hiba keletkezett, a cél meg ez volt.
[ Szerkesztve ]
Buliban hasznos! =]
martonx
veterán
"Tudok olyan multiról, ahol TDD + SOLID + OOP alapvető" - melyik az? És valóban alapvető, vagy csak kifelé ezt kommunikálják?
Én kérek elnézést!
inf3rno
nagyúr
Nem kommunikálják kifelé, egyik haverom dolgozott náluk. Megígértem neki még régebben, hogy nevet nem mondok. Egyébként meg ez elég off topic itt.
Buliban hasznos! =]
martonx
veterán
értem
Én kérek elnézést!
Jim-Y
veterán
FYI:
export function add() {
var result = 0;
for (var i = 0; i < arguments.length; ++i)
result += arguments[i];
return result;
}
Ha mar ES6, akkor miert nem hasznalod ugy, ahogy kene, vagy ahogy lehet? Gondolok itt..
export default (...nums) => nums.reduce((acc, num) => acc + num, 0);
Es ugyanez a tobbinel is.
inf3rno
nagyúr
Életemben talán az az első sor, amit ES6-al írtam, annyi volt a cél, hogy legyen gyorsan valami ami ES6 featureöket használ, valid, és tudok hozzá tesztet írni. Sosem használtam babel-t, és nagy valószínűséggel nem is fogok. Az egész babel-es branch-et amúgy nektek szórom össze.
[ Szerkesztve ]
Buliban hasznos! =]
Jim-Y
veterán
Mi az, hogy nekunk?!
inf3rno
nagyúr
Konkrétan Zedz küzdött azzal, hogy a babel nem megy neki browserify-al.
Buliban hasznos! =]
Jim-Y
veterán
Fene se tudja, nekem ennyi beallitas kellett browserify-hoz, hogy menjen a babel.
"devDependencies": {
"babelify": "^5.0.3"
},
"browserify": {
"transform": ["babelify"]
}
Ja es a fene se szorakozott gulppal vagy grunttal, npm o/
[ Szerkesztve ]
inf3rno
nagyúr
Neki valamilyen deprecated modullal sikerült csak megoldania. Egyébként ja, nagyjából ennyi a történet, de gondoltam, akkor már megcsinálom rendesen olyan formában, amire lehet később hivatkozni, ha felmerül ugyanez a kérdés, meg belövök hozzá teszt környezetet sourcemaps, el, meg minden ilyesmivel. Így is, úgy is kelleni fog nekem a master branch saját projektekhez, a babel-es branch meg nem sokban különbözik, úgyhogy belefér az időmbe, hogy pár órát annak az összevakarására is rászánok.
[ Szerkesztve ]
Buliban hasznos! =]
Jim-Y
veterán
"gulp": "^3.9.0",
"gulp-jasmine": "^2.2.0",
"gulp-rename": "^1.2.2",
"gulp-replace-task": "^0.11.0",
"gulp-sourcemaps": "^1.6.0",
"gulp-task-file-loader": "^1.0.0",
"gulp-uglify": "^1.4.2",
Nekem ez a bajom a gulppal meg a grunttal is, hogy ezer meg egy dependencia es kb ennyi sorbol meg ennyi kodbol ossze lehet amugy hozni a buildelest mindenfele build tool nelkul. Vagy akar egy makefile.
inf3rno
nagyúr
Ja, ezt én is észrevettem, de engem nem zavar. A grunt-ot én nem szeretem, inkább a configuration by code híve vagyok, amit gulppal meg lehet csinálni. Sokkal rugalmasabb. Ha van kedved összeszórhatnál valami hasonló környezetet makefile-al, kíváncsi vagyok, hogy mi a különbség.
Buliban hasznos! =]
Sk8erPeter
nagyúr
"Arra, hogy a TDD/BDD többlet idővel járna mutathatnál valami bizonyítékot, mert pont az ellenkezője igaz."
Ha nem baj, megfordítanám a dolgot: arra mutathatnál nekem olyan általánosítható bizonyítékot, hogy minden esetben gyorsabb összeállítani egy gigarendszerben - annak összes függőségével, aktuális használati esetnek megfelelő konfigurációjával, stb. - egy valóban komplett tesztkészletet egy kisebb/nagyobb feature időre történő fejlesztéséhez, mint TDD/BDD aktuális alkalmazása nélkül azt elkészíteni. Mint minden általánosítás, a tiéd is itt sántít. Ha előre megvan hozzá minden infrastruktúra, valóban csakis mindenki úgy készített kódot, és valóban mindenki töltötte az idejét a minden esetre kiterjedő tesztesetek lefedésével, akkor előfordulhat, hogy nem akkora para, de van, amikor tényleg para.
De hidd el, ezt nem bántásból vagy kötekedésből írtam le, hanem azért, mert a gyakorlat sokszor sajnos messze kell, hogy kerüljön az elméleti bullshittől, még ha az elméleti bullshitnek nyilvánvalóan lehet bőven létjogosultsága.
"Persze ha nem veszed komolyan az egészet, vagy nem fotnos a minőség, akkor nyugodtan fejleszthetsz tesztek nélkül is."
Hümm, tehát arra, aki valaha életében merészelt leírni TDD/BDD-elvek alkalmazása nélkül kódot céges környezetben (alap, hogy az első kör nem az éles), Te most itt ünnepélyesen kijelentetted, hogy nem veszi komolyan az egészet, meg annak nem is fontos a minőség, értem.
Sajnos nem lettem meggyőzve - de még egyszer megemlíteném, cseppet sem becsülöm le a TDD/BDD előnyeit és szépségeit. (Egyébként meggyőzésként említettél EGY multit, ahol állítólag csak olyan kódot adnak ki a kezükből, ami ezen elvek mentén készül - egyrészt nem tudhatjuk ennek valódiságát, másrészt nem egy nagy merítési minta. De a gondolkodásmódod alapján biztos csakis ott lehet a szakma krémje, ahol ez percről-percre szem előtt van, máshol csak noobok és igénytelen k×csögök vannak. )
Sk8erPeter
inf3rno
nagyúr
"Ha nem baj, megfordítanám a dolgot: arra mutathatnál nekem olyan általánosítható bizonyítékot, hogy minden esetben gyorsabb összeállítani egy gigarendszerben - annak összes függőségével, aktuális használati esetnek megfelelő konfigurációjával, stb. - egy valóban komplett tesztkészletet egy kisebb/nagyobb feature időre történő fejlesztéséhez, mint TDD/BDD aktuális alkalmazása nélkül azt elkészíteni."
Nem tudok ilyesmiről, de nem nagyon szoktam statisztikák után nyomozni. A kezdeti fejlesztési idő valamivel lassabb, a bug sűrűség viszont sokkal kisebb. Egy tanulmány szerint kb 15-35%-al több időt kell beleölni a projektbe, és valahol 40-90% közötti mértékben esett vissza a release előtti bug sűrűség, máshogy fogalmazva, kevesebb, mint fele annyi bug volt. [link] A 15-35% idő többlet a 2x annyi debug-nál tapasztalatom szerint bőven visszajön. SO-n volt ilyesmi kérdés. [link] Ha ennyire izgat a téma, akkor utánakereshetnél te is, nincs kedvem olyan dolgokra pazarolni az időmet, amiből nem tanulok semmit, max megnyerek egy vitát. A többi már tényleg nagyon off.
[ Szerkesztve ]
Buliban hasznos! =]
Sk8erPeter
nagyúr
Engem aztán pont nem izgat a téma (hogy ezt hogy hoztad ki, fogalmam sincs), pont rólad szól a topic már egy ideje. No de lezárhatjuk.
Sk8erPeter
p00h
tag
Sziasztok, kérlek segítsetek.
Joomla weboldalt próbálom konfigurálni (jf-vihrea ingyenes reszponzív template-el), de 1 dolog kifog rajtam: IOS alatt minden linkre 2szer kell nyomni, androidon nincs ilyen gond. Állítólag a hover a baj a css-ben, és neten keresgélve nem 1 ritka probléma, mégsem tudom megoldani. Tény hogy nem vagyok webprogramozó, mégcsak informatikus sem, de eddig kis keresgéléssel mindent meg tudtam oldani, erre nem jövök rá. Több javascriptet kipróbáltam egyik sem működött, vagy ha működött bizonyos linkeknél hibát okozott.
Van erre vmilyen egyszerű megoldás?
Köszönöm!
martonx
veterán
Jellemzően ezek a template-ek elavult szarok, amiken csak épp annyit csiszolnak, hogy az újabb CMS verziókkal éppen kompatibilisek maradjanak.
Én kérek elnézést!
disy68
aktív tag
A probléma valóban a :hover körül van. Akkor fordul elő ilyen, ha a :hover esemény hatására valamit megjelenítünk/eltüntetünk lehet ez egy háttér is (sima színváltoztatásnál nincs gond). Az általad használt template is sanszosan használ ilyet. Itt olvashatsz megoldásokat.
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
Headless
őstag
Sziasztok nem tudom mennyire tartozik ide, persze javascript, de google grafikonnal való a kérdésem, Előre is sajnálom, sajnos kicsinyített a kód így nem a legjobb az olvashatósága, próbáltam egy kicsit rajta javítani.
A problémám az, hogy el akarok rejteni adatsorokat a jelmagyarázatra kattintva, volt is egy leírás, az alapján és a commentben lévő javíás szerint meg is csináltam működik is, bizonyos esetekben. Ugyanis ha nincs "tooltip" oszlop az egész adattáblában, akkor úgy működik ahogy kell. Azonban, ha már van egy, akkor kizárólag az első oszlopot rejti el, a többinél már hibát ír, és sajnos ezúttal már nem tudtam megfejteni, az okát, remélem ti tapasztaltabbak vagytok és tudtok segíteni. jsfiddle
[ Szerkesztve ]
LEDE - R3G/DIR860l -> https://tinyurl.hu/Ntkb/
Jim-Y
veterán
Sziasztok,
Tudnatok ajanlani jo/bevalt angularjs / angularjs2 tutorialt? egghed.io-t nezem, azt nem kell irni
Koszi
DNReNTi
őstag
Én codeschool-on néztem meg az ingyenes tutorialokat, az szerintem nagyon jó, alapoktól megy és szájbarágós, példálózós. Bár szerintem te ezen a szinten már túl vagy. Ha mégsem akkor megéri rászánni az időt, meg lehet érteni belőle a strukturális alapokat. Az offical dokumentáció szvsz egy kalap szar.
but without you, my life is incomplete, my days are absolutely gray
martonx
veterán
Én anno, amikor hirtelen jött az ukáz, hogy angularjs-eznünk kell, pluralsight-on néztem meg pár órányi tutorial-t.
Én kérek elnézést!
Zedz
addikt
Treehouse-on jön ki ebben a hónapban egy frissített Angular tutorial, bár lehet nem mutatna már nagyon újat. Munkahelyre kell, vagy csak szorgalom?
slice14
veterán
Sziasztok
Az időjárás cucnál van egy érdekesség. Ez van js-ben megadva az jelenlegiidojaras kiíratásához.
Jelenlegiidojaras = Weather.current_observation.weather; if (Jelenlegiidojaras == undefined) {
setGlobal('%Jelenlegiidojaras',"N/A "); } if (Jelenlegiidojaras != undefined) {
Jelenlegiidojaras2 = convert( Jelenlegiidojaras, 'htmlToText');
setGlobal('%Jelenlegiidojaras',Jelenlegiidojaras2); }
Viszont a json-be ha hiányzik, az adat, akkor a változónevét írja ki.
"weather":"",
Valami ötlet?
Samsung Galaxy S21 ---- Hirdetéseim: http://bit.ly/2tWSizn
GG888
senior tag
codeacademy.com is alapoktól építi fel
pcmodding.hu | PC MODDING | Minden, ami modding, verhetetlen árak.
DNReNTi
őstag
Ha már úgyis Angular a téma. Nekem egy inkább elméleti/logikai kérdésem lenne:
Pár hete kezdtünk el egy új projektet ami PHP backend (Codeigniter) és Angular frontend-en megy elszeparálva szépen ahogy a nagykönyvben. Ebben a projektben az Angular kísérleti jelleggel van benne, nem vagyok nagy ninja, de így legalább megismerkedem vele én is. Nos a kérdés pedig a tyúk vagy a tojás esete kissé. Hogy a view-kat ne gányoljam össze ezért azokban már csak Angular kifejezéseket használok PHP-t nem, tehát pl egy felhasználói profil megjelenítésekor nem a PHP objektumot jelenítem meg (az nincs is, felesleges lenne), hanem oldalbetöltéskor AJAX lekéri adott felhasználót, majd az Angular írja ki az adatokat. Az Angular modul, a view-al együtt töltődik be, így mindenképpen várni kell az AJAX válaszra, amit jelenleg úgy oldottam meg, hogy megjelenik egy kis betöltés gif, aztán ha megjött az adat, megjelenik helyette a profil. Meg lehet e oldani, szépen, nem hákolva, hogy maga a view csak akkor töltsön be, ha már megvan az AJAX response? Szerintem hülyeség már maga a kérdés is, de inkább megkérdezem mi a helyes eljárás.
but without you, my life is incomplete, my days are absolutely gray
TheProb
veterán
Sziasztok!
Suliban épp JS-t tanulok, de az oktatás színvonala kb -1..., ellenben a következő minta vizsgával nem nagyon tudok elindulni. Tudnátok segíteni?
Itt a feladatleírás:
Készítsen olyan HTML5 weboldalt, amin elhelyez egy 7x7 méretű táblázatot, melynek minden eleme egy-egy egész szám megadására alkalmas beviteli mező! A számoknak az [1; 7] zárt intervallumba kell esniük. A táblázat legyen egy űrlap része! Az űrlapon helyezzen el egy küldés (submit) gombot is, „Ellenőriz” felirattal!
Készítsen JavaScript nyelven olyan eseménykezelő szubrutint, ami a gombra kattintást (pontosabban űrlap „elküldést”) követően ellenőrzi, hogy minden mezőt kitöltöttek-e! Ha nem, ezt felbukkanó ablakban közli. Ha igen, akkor ellenőrzi, hogy a táblázatba bevitt értékek latin négyzetet alkotnak-e. Akkor beszélünk latin négyzetről, ha a táblázat minden sorában és minden oszlopában a 7 lehetséges érték pontosan egyszer fordul elő.
Igazából a legeleje a homály, hogy hogyan szedem ki a táblázatból az egyes értékeket, hogyan rakom bele 2d-s array-be? Aztán lehet a továbbiaknál is vakarnám a fejemet, de jelenleg az elindulást nemtom.
"Boba is Mickey, Mickey is Boba" - Finkle Einhorn | PC Rig: https://pcpartpicker.com/b/bBy48d
martonx
veterán
Kezdetnek csinálsz egy táblázatot, minden cellájában egy input-tal. Tovább hagy ne folytassam. Pláne, hogy nem látom a jsfiddle példádat, hogy egyáltalán próbálkozol a dologgal.
Én kérek elnézést!
PumpkinSeed
addikt
Adsz egy id-t 0-48-ig az űrlapmezőknek, majd ezt for-al kiolvasod, és beleteszed egy tömbbe. Ha úgy testszik akkor készítesz erre egy 2 dimenziós tömböt.
[ Szerkesztve ]
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
TheProb
veterán
Nem bizonygatni akarom, hogy mennyire foglalkozok vele, ötletet kértem, hogy hogyan nyerem ki az input mezőkből az adatokat... Amit most leírtál az már pont megvan, ezért kérdeztem a JS részét a dolognak...
(#5632) PumpkinSeed: Köszi, ez már használható infó. Guglizással csak arra jutottunk, hogy magának a táblának adok pl ID-t és azt egy az egyben getElementsByTagName("TD")-el dobom be egy array-be, de az nem volt jó.
"Boba is Mickey, Mickey is Boba" - Finkle Einhorn | PC Rig: https://pcpartpicker.com/b/bBy48d
martonx
veterán
getElementsByTagName("input") nem lenne célszerűbb? Vagy csak én nem értem, hogy mi a probléma?
Egy jsfiddle-lel légyszi kínálj már meg bennünket, ha már azt szeretnéd, hogy segítsünk.
Én kérek elnézést!
TheProb
veterán
TagName-el csak 1D-s array-be lehet bedobni a cuccokat, nem?
"Boba is Mickey, Mickey is Boba" - Finkle Einhorn | PC Rig: https://pcpartpicker.com/b/bBy48d
PumpkinSeed
addikt
Igazából teljesen mindegy mivel olvasod ki, megfelelő matematikai műveletek használatával az 1 dimenziós tömböt is fel tudod ugyan úgy dolgozni mint a 2 dimenziósat.
Amúgy ez így szerintem undorító, már megbocsáss (nem szoktam így fogalmazni). Sokkal szebb lenne, ha az inputokat is JS-el generálnád. appendChild vagy valami hasonló függvény az ami neked kell ehhez.
Ez az új JSFIDDLE nagyon jó lett, lazán lehet oktatásra is használni.
[ Szerkesztve ]
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
TheProb
veterán
Most tanulnám JS-t, kb a 0-ról, szóval egyelőre ilyenek még had ne legyenek triviálisak
Egyelőre a feladatban leírtakat szeretném, hogy megtudnám csinálni, utána majd szépítek.
"Boba is Mickey, Mickey is Boba" - Finkle Einhorn | PC Rig: https://pcpartpicker.com/b/bBy48d
martonx
veterán
Próbáltam Firefox-al, és Edge-el is, de sehogy nem jött be a példa.
Én kérek elnézést!
TheProb
veterán
Úgy néz ha collaboration-t indítok akkor az a session végén "megsemmisül"
Itt van normálisan. Ahogy látom teljes kapufa amivel próbálkozok amúgy, mert még az alert se jön fel, amit próbaként írtam, ha rányomok a gombra.
Nem tudtok olyan kódoló tutorialt, ahol html-el kombinálva kell JS-t használni? Olyanra gondolok, mint ami codeschool-on is van, de ugye az csak pure JS, csak az alapokkal. Mert nagyon úgy érzem, közöm nincs ahhoz, hogy a html elemeket manipuláljam, "lekérdezzem".
"Boba is Mickey, Mickey is Boba" - Finkle Einhorn | PC Rig: https://pcpartpicker.com/b/bBy48d
martonx
veterán
Azért nem moccant meg a js-ed, mert ha onload-ot használsz a js kódod wrapperének, akkor az inline js eventnél nincs scope-on belül. Szóval megoldás lehetett volna, simán body-ba rakni a js-t, vagy header-be. Amúgy sem illik inline eventeket használni, úgyhogy átalakítottam, normális event bindingra, és meghagytam az onload-ot. Így legalább már megmoccan a js
Ránézésre egy rakás hibát látok benne, de így már el tudsz indulni. Ettől kezdve a feladatnak nulla köze a js-hez, szimpla programozás feladat bármilyen nyelven. Figyelj oda a kismillió hibádra, de direkt nem akarom a poénokat lelőni, vannak nagyon triviálisak is közöttük.
Ja és a friss link: [link]
[ Szerkesztve ]
Én kérek elnézést!
(#5641) Sk8erPeter válasza PumpkinSeed (#5632) üzenetére
Sk8erPeter
nagyúr
"Adsz egy id-t 0-48-ig az űrlapmezőknek, majd ezt for-al kiolvasod"
He? Ezt most tényleg leírtad?
Az id-k aztán pont nem segítik az elemek bizonyos jellemzők szerinti általános, közös kezelését, hiszen azok egyedi azonosítók, azt az EGY bizonyos elemet találod meg a felhasználásukkal, pont az a lényegük.
Ilyesmire az osztályok valók, vagy egyéb közös tulajdonságok felhasználásával (pl. a tag neve, attribútumok, ilyesmik) is lehet azonosítani a közös viselkedéssel felruházni kívánt elemeket.
(#5636) PumpkinSeed:
"Amúgy ez így szerintem undorító, már megbocsáss (nem szoktam így fogalmazni). Sokkal szebb lenne, ha az inputokat is JS-el generálnád. appendChild vagy valami hasonló függvény az ami neked kell ehhez."
A lényeg szempontjából teljesen mindegy, hogy hogyan készülnek el az elemek, egyáltalán nem lesz attól "undorító", hogy a HTML-kimenetben egyből ott van a táblázat összes eleme, egyrészt úgy nem JavaScript-kóddal kell minden elemet elkészíttetni (ez erőforrás-spórolást jelent), másrészt elkészítheti az elemeket a szerveroldal is, és bele is pakolhatja egyből adott esetben az input-elemek értékeit is (amiket pl. adatbázisból szed). Nem láttam az eredeti kódot, de az önmagában biztosan nem jelent problémát, és nem is csúnya, ha a HTML-kódba "égette bele" az elemeket, amiket viszont kliensoldalon kellene manipulálni/ellenőrizni.
(#5640) martonx:
"Azért nem moccant meg a js-ed, mert ha onload-ot használsz a js kódod wrapperének, akkor az inline js eventnél nincs scope-on belül."
Tetszett ez a mondat, szerintem ebből a kolléga egy büdös árva szót nem értett. Nekem is kétszer kellett elolvasnom, hogy felfogjam.
Amúgy a kódban az a displayDate callback csak valami elírás (a check helyett).
[ Szerkesztve ]
Sk8erPeter
martonx
veterán
Csak igyekeztem megragadni a kollégának a probléma lényegét
A displayDate tényleg csak elírás volt, elfelejtettem a legvégén rányomni az update-re, így végül valami régebbi verziót linkeltem be
Én kérek elnézést!
TheProb
veterán
Kicsit hegesztettem rajta, ellenben továbbra se húzza be az adatokat a mezőkből. Kezdi már felhúzni az agyamat ez a sz@r... Amúgy jó tudni, hogy olyan formában nem is lehetett volna csinálni 2d-s tömböt ahogy akartam...
Ha nincs .value a getElement után akkor "undefined", ha ott van akkor meg rinyál a chrome console-ja érte.
Valaki már igazán megmondhatná, hogy a francba kell megcsinálni ezt a szutyok feladatot, mert ezekkel nemigen vagyok előrébb, amiket leírsz. Annak aki már ismeri a nyelvet annak biztos segítenek valamit a rávezetéseid, de olyannak aki kb a 0-ról indul neki annak nemsokat...
kb. 2.napja csak azzal szívok, hogy a nyűves adatokat kiszedjem a megadott input mezőkből, azért ez vicc.
[ Szerkesztve ]
"Boba is Mickey, Mickey is Boba" - Finkle Einhorn | PC Rig: https://pcpartpicker.com/b/bBy48d
inf3rno
nagyúr
ip-t írtál id helyett, azért nem működik.
[ Szerkesztve ]
Buliban hasznos! =]
TheProb
veterán
Bakker..., tényleg, köszi. Sztem az életbe nem jöttem volna rá, hogy azt írtam el...
Meg is csináltam, elvileg jól működik. Legalábbis nekem úgy tűnik 1-2 teszt után.
"Boba is Mickey, Mickey is Boba" - Finkle Einhorn | PC Rig: https://pcpartpicker.com/b/bBy48d
martonx
veterán
Igen ez volt az egyik hiba, de annyira látványos volt, hogy gondoltam elsők között fogja észrevenni
Én kérek elnézést!
TheProb
veterán
10/8 alkalommal pont ezeket nem szúrom ki...
van, hogy 30percig bámulom a kódot, már anyázok és nem jövök rá, hogy 1-1 karaktert elírtam. Szomorú
"Boba is Mickey, Mickey is Boba" - Finkle Einhorn | PC Rig: https://pcpartpicker.com/b/bBy48d
inf3rno
nagyúr
Ha megnézted volna, a konzolt, akkor látszott volna benne, hogy a getElementById null-t ad vissza, ami meg csak azért lehet, mert rossz id-t adtál meg.
Ha most tényleg jól megy, akkor ez lehet az 1.0. Ha van kedved tovább fejleszteni, akkor javaslom, hogy ahelyett, hogy az input-okat járod be az ellenőrzésnél, csinálj 2d tömböt a tartalmukból, és azt járd be. Ez elsőre plusz munkának tűnik, de így közvetlenül a "model"-en tudsz dolgozni, és cserélni tudod, hogy honnan és hogyan olvasod be azt. Következő lépésnek be lehetne tenni egy olyan, hogy az input.onchange eseménynél olvasod be minden cellából az értéket, a 2d tömbödbe, ahelyett, hogy gombnyomásra tennéd ezt. Így a gomb teljesen feleslegessé válna, helyette minden változásnál futtathatnád az ellenőrzést automatikusan. Ez mondjuk lehetne a 2.0. Következő lépésnek betehetnél két táblázatot ugyanahhoz a model-hez, és az lenne a feladat, hogy szinkronban tartsd őket. Szóval ha az egyikben változik egy cella tartalma, akkor a másikban is változnia kéne, ez már egy komolyabb data binding, lehetne 3.0. Utána csinálhatnál olyat, hogy külön ablakban van a két táblázat, és úgy tartod szinkronban a cellák értékeit, ez lehetne 4.0. Nagyjából ennyi amit ki lehet hozni a témából. Gondolom egy kis fantáziával még képeket is lehetne generálni a számok alapján, stb.
[ Szerkesztve ]
Buliban hasznos! =]
tzimash
őstag
üdv!
Adott egy feladat, amelyben generálni kell 12 véletlen számot majd megkeresni közülük a 3-mal oszthatókat, végül kiíratni. Működik is, csak a képen látható dolog zavar, a vesszők ott maradnak... ki lehetne azokat szedni onnan valahogy?
A kód (ne kössetek bele, első ilyen js feladatom, és örülök, hogy működik
<script>
function genrand()
{
var tomb=new Array(12);
var eredmeny=new Array(12);
var i, j;
for(i=0;i<12;i++)
{
tomb[i]=Math.ceil(Math.random()*11)
}
for(i=0;i<12;i++)
{
document.getElementById("tomb").innerHTML = tomb;
}
j=0;
for(i=0;i<12;i++)
if(tomb[i]%3==0)
{
eredmeny[j]=tomb[i];
j++;
}
document.getElementById("three").innerHTML = eredmeny;
}
</script>
[ Szerkesztve ]
dqdb
nagyúr
var eredmeny=[];
Előre azt mondtad, hogy az eredmény 12 elemű tömb lesz, de nem írtál bele annyi elemet, így a maradék undefined értéket vett fel. A new Array() helyett inkább a sokkal tömörebb [] szintaktikát használd.
for(i=0;i<12;i++)
{
document.getElementById("tomb").innerHTML = tomb;
}
Itt a for ciklusnak semmi értelme sincsen.
Szűrésre és egyéb tömbbel kapcsolatos műveletekre érdemes használni a JS filter/reduce/map feature-jeit, ha lehetőséged van rá, mert sokkal tömörebb és átláthatóbb kódot eredményez:
var eredmeny = tomb.filter(function(e) {
return e % 3 === 0;
});
Csak akkor használd a == és != operátorokat, ha szükséges a konverzió, minden egyéb esetben a === és !== operátorokat használd.
Legyél konzekvens a központozásban, tedd ki mindig a space-eket az operátorok elé és mögé, valamint a sorok elejére a megfelelő behúzást.
for(n=0;n<12;n++)
if(tomb[n]%3==0)
{
eredmeny[j]=tomb[n];
j++;
}
document.getElementById("three").innerHTML = eredmeny;
}
És kerüld az ilyen eseteket, mert első ránézésre azt hinné az ember, hogy az innerHTML módosítása is a for cikluson belül történik, ezért tedd ki a kapcsos zárójeleket:
for (n=0; n < 12; n++)
{
if (tomb[n] % 3 === 0)
{
eredmeny[j] = tomb[n];
j++;
}
}
document.getElementById("three").innerHTML = eredmeny;
Vagy a JavaScript szokások szerint írva:
for (n=0; n < 12; n++) {
if (tomb[n] % 3 === 0) {
eredmeny[j] = tomb[n];
j++;
}
}
document.getElementById("three").innerHTML = eredmeny;
[ Szerkesztve ]
tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek