- Huawei Watch Fit 5 Pro - jó forma
- Honor Magic7 Pro - kifinomult, költséges képalkotás
- Samsung Galaxy S26 Ultra - fontossági sorrend
- Samsung Galaxy A52s 5G - jó S-tehetség
- Vivo X200 Pro - a kétszázát!
- Okosóra és okoskiegészítő topik
- Rég várt frissítést kap az Android tárcsázója
- Poco F8 Ultra – forrónaci
- iPhone topik
- Xiaomi 17 Ultra - jó az optikája
-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
-
Frissítve: 2014-02-25 10:20 Téma összefoglaló
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
Mr Dini
addikt
Ha ahhoz is lusta vagy, hogy a böngészőben kipróbáld némi kiegészítésekkel, akkor miért nem vagy lusta megkérdezni itt a fórumon? SOKKAL tovább tart az egész hozzászólást megírni, mint kipróbálni azt a nyomorék kódot.
Csak saját okulásod céljára kérlek nyomj egy Ctrl+Shift+I-t, kattints a Console tabra, majd dobd be ezt a pici kódot:var storagesArray = ['https://drive.google.com', 'https://dropbox.com'];
var storagesAsString = '';
var i = 0;
for(i = 0; i < storagesArray.length; i++){
storagesAsString += (i + 1) + '.: ' + storagesArray[i] + '\n';
}
alert(storagesAsString);Jé, nahát, működik, gondolom csodát láttál.
Ilyen nagy erőfeszítésekre gondoltam, amikkel akár egyből ki is próbálhatod, mi a búbánattól vérzik el a kódod. Amíg nem tanulsz meg rájönni a saját kódod hibáira, addig programozni sem fogsz megtanulni soha. Mindig mástól várni a segítséget megint csak nem jó út.Ha meg a 0. indexen lévő elemet nem szeretnéd kiíratni, akkor igazítsd hozzá a kódot:
var storagesArray = ['EZ NEM KELL', 'https://drive.google.com', 'https://dropbox.com'];
var storagesAsString = '';
var i = 1;
for(i = 1; i < storagesArray.length; i++){
storagesAsString += i + '.: ' + storagesArray[i] + '\n';
}
alert(storagesAsString);Nah, felraktam egy Win-t a harmadik partícióra és megpróbáltam lefuttatni a kódot, de ezt dobja:
17:46:07.717 Cross-Origin kérés blokkolva: Az azonos eredet házirend nem engedélyezi a távoli erőforrás olvasását innen: [...]. (Ok: Az „Access-Control-Allow-Origin” CORS fejléc hiányzik).1(ismeretlen)
Így nem fut le a kód. Sima XMLHttpRequesttel és JQuery get-tel is ezt dobja...

-
Mr Dini
addikt
Ha ahhoz is lusta vagy, hogy a böngészőben kipróbáld némi kiegészítésekkel, akkor miért nem vagy lusta megkérdezni itt a fórumon? SOKKAL tovább tart az egész hozzászólást megírni, mint kipróbálni azt a nyomorék kódot.
Csak saját okulásod céljára kérlek nyomj egy Ctrl+Shift+I-t, kattints a Console tabra, majd dobd be ezt a pici kódot:var storagesArray = ['https://drive.google.com', 'https://dropbox.com'];
var storagesAsString = '';
var i = 0;
for(i = 0; i < storagesArray.length; i++){
storagesAsString += (i + 1) + '.: ' + storagesArray[i] + '\n';
}
alert(storagesAsString);Jé, nahát, működik, gondolom csodát láttál.
Ilyen nagy erőfeszítésekre gondoltam, amikkel akár egyből ki is próbálhatod, mi a búbánattól vérzik el a kódod. Amíg nem tanulsz meg rájönni a saját kódod hibáira, addig programozni sem fogsz megtanulni soha. Mindig mástól várni a segítséget megint csak nem jó út.Ha meg a 0. indexen lévő elemet nem szeretnéd kiíratni, akkor igazítsd hozzá a kódot:
var storagesArray = ['EZ NEM KELL', 'https://drive.google.com', 'https://dropbox.com'];
var storagesAsString = '';
var i = 1;
for(i = 1; i < storagesArray.length; i++){
storagesAsString += i + '.: ' + storagesArray[i] + '\n';
}
alert(storagesAsString);Ok. Csak egy debian szerver van a gépemen, és ha kellene a böngésző, akkor először be kell rakni a desktopot, majd csak utána másolhatom át telóról gépre a kódot... :/ De az a lényeg, hogy rájöttem magamtól, hogy mi a gond, mire megkérdeztem.

A nulladik elem kihagyása pedig a kezdetektől meg volt oldva.
Azért köszi és teljesen igazad van!

-
Mr Dini
addikt
Az ilyen halál egyszerű kódrészleteket egyébként nyugodtan kipróbálhatnád a fejlesztői panelben is, úgy, hogy bedobod a konzolba, csak alakítsd át egy picit úgy, hogy tesztelhető is legyen. Nyomsz egy Ctrl+Shift+I-t (vagy F12-t), rányomsz a Console fülre, majd bedobod a kódodat. Vagy erre van a jsFiddle, csak akkor is nyisd le a konzolt, hogy lásd az esetleges hibákat, amiket oda dobál ki. Meg hát nyilván ennél kicsit szofisztikáltabb módszerek is léteznek, például valami komolyan vehető fejlesztőkörnyezet használata, JSHint, JSLint, meg egyéb módszerek, amik hozzájárulhatnak a kódod minőségének javításához.
Amúgy igen, inicializálni kell a változódat, mielőtt a nemlétező korábbi értékéhez akarsz hozzáfűzögetni bármit, és ha nem akarsz "Uncaught ReferenceError: <VALAMIVALTOZO> is not defined" jellegű hibákat kapni. Például ezeket a hibákat azonnal láttad volna, ha a konzolba dobálnád be a kódot, vagy abban a környezetben, aminél használod a kódot, kihasználnád a rendelkezésre álló, hasonló jellegű hibakeresési módszereket.
Ezenkívül JavaScriptben nem szokás a változókat nagy kezdőbetűkkel írni.
Plusz ha alert-üzenetbe akarod mindezt kiírni, akkor valami nem stimmel, valószínűleg lenne ennél szebb megoldás (az alert-dialógus elég bénácska és korlátozott, persze tesztelésnek néha elmegy (ha nagyon muszáj), ha nem tudsz épp debuggolni, plusz nem felel meg a console.log, stb.).Ja, csak taskerrel (droidos automatizáló program) futtatom. Ott nincs se konzol, se más megoldás debuggolásra. Se jquery ui... Csak flash, meg alert...
Böngészőbe futtatni pedig lusta vagyok...

-
fordfairlane
veterán
fordfairlane-nel értek egyet, ezek a kulcsszavak egy kezdőt szerintem is inkább elrettentenek, mint kedvcsinálónak számítanak, elkezd ezekre guglizni, és akkora zsongás lesz a fejében (mondjuk már eleve a kulcsszavaktól is), hogy lehet, hogy azt fogja érezni, hogy ezt inkább hagyjuk (jó, mondjuk egy komoly elhivatottság eleve kell a minőségi programozáshoz). Az általad felsoroltak közül van olyan, amikről nekem is csak felületes tudásom van, már ha annak nevezhető, igaz, most épp nem a webfejlesztés van terítéken esetemben, hanem csak hobbi, de azért le tudok ülni megoldani egy JavaScriptes feladatot, gondolom azért ez csak lejött.
Először tényleg angolul kell megtanulnia (ezt Te is írtad), aztán programozói alapszemléletet elsajátítani (nem biztos, hogy JavaScripten keresztül kellene, de fogalmam sincs, mi a leginkább működő módszer, pl. a C nyelv kezdésnek kissé erős lehet, mégis pl. BME-n ezt nyomatják elsőre), majd tök alapvető dolgokkal megismerkedni a JavaScripten belül - pl. épp azt, hogy mi is az a DOM, milyen módon tudja alapszinten manipulálni a HTML-elemeket, stb. Eleinte nem szükséges minden olyan ismeret, ami a pár-/sokéves tapasztalatból neked kapásból előugrik. Legyen némi sikerélménye, amiből tovább építkezhet (ami azt hiszem, nagyon fontos ahhoz, hogy legyen kedve folytatni). Amikor kezdő voltam programozásból, én is azt éreztem, hogy a haladók vagy profik ritkán tudnak csak visszaemlékezni (vagy nem is akarnak) arra, hogy ők honnan is kezdték. Érted, ha elkezdesz tanulni angolul, akkor sem a past perfect continous-zal kezded.Azóta se jelentkezett. Lehet, beleásta magát a javascript rejtelmeibe.

-
Mr Dini
addikt
A smiley kivágására szolgáló reguláris kifejezés így nem jó, túl megengedő, és érthető, hogy kivágja a többi részt is. Le kell szűkítened olyan módon, hogy ténylegesen csak a smiley-kra illeszkedjen, és konkrétan azt a részt szedd ki, ami neked kell, tehát ami az
altattribútumnál meg van adva.Itt van egy példa a smiley-kra szolgáló képre:
<img src="/dl/s/d1.gif" alt=":D">Ebből neked értelemszerűen az
altattribútum értékének megadott:Dkell, idáig Te is eljutottál.Itt egy példa egy jól működő replace-re:
var emoticonImg = '<img src="/dl/s/d1.gif" alt=":D">';
var emoticonText = emoticonImg.replace(/<img src="\/dl\/s\/[^"]+\.gif" alt="([^"]+)">/, "$1");
console.log(emoticonText); // output: :DEzt a reguláris kifejezést persze el kell látnod a megfelelő flagekkel, hogy jól működjön, itt leszűkítettem a lényegre.
Szerk.: a reguláris kifejezésben szereplő
[^"]+azt jelenti, hogy itt egy vagy több olyan karakternek kell szerepelnie, amely nem egyezik az idézőjellel (").
Megy! Köszi!A regex ilyen szinten még nem volt meg, de máris pótolom ezt a hiányosságom! Megvan a mai olvasnivaló.

-
DNReNTi
őstag
Azért szerintem jelenleg még igen nagy túlzás, hogy a jQuery felett "eljárt a kor".
Egyszerűen még nem tartunk ott, bármennyire is menő lenne, a jQuery-nek az egyik lényege továbbra is megmaradt, vagyis röviden leírni mindazt, amit amúgy hosszabban, de amúgy tényleg megoldhatsz plain JavaScripttel. (A másik lényege persze a cross-browserség megteremtése, de most ettől tekintsünk el, mert nem érdekes a téma szempontjából.) Szerintem igaza van fordfairlane-nek akkor, amikor azt állítja, hogy ezen vacogni felesleges premature optimization. Ahogy haladunk előre, a középkategóriás (vagy akár még az olcsóbb) okostelók is egyre komolyabban vehető processzorokkal vannak felszerelve, úgyhogy szerintem kezd csökkenni a súlya annak is, hogy mobilon mennyire érezhető a jQuery-nélküliség (vagy sem).
Az általad linkelt oldal egy-két példája is mutatja, hogy azért kódszépség tekintetében vannak még mindig bőven különbségek egy rövidebb, beszédesebb kód és egy szószátyárabb, de menőbb (hiszen plain JS) kód között. Meg ott a ZeptoJS és társai, amik az alapvető funkcionalitást tartalmazzák, az is megfontolható lehet, ha a jQuery súlya fájdalmas.
Pont nemrég került elő, hogy korábban írtam saját célokra egy böngészőbővítményt, aminek annak idején az összes kódját plain JS-ben pötyögtem, mert nagyon menőnek éreztem akkor, hogy így minden sallangtól mentes lesz, de 1-2 hete némi agypihentetésnek egy részét átírtam inkább jQuery-re, mert egyszerűen zavart, hogy mindent olyan szószátyár módon kell leírnom.
A kód karbantartását is nehézkesebbnek találtam, pedig nincs gondom a JS ismeretével ilyen szinten.
martonx foglalta össze röviden, hogy nyelvi szinten lenne elvárható némi rövidítés és funkcionalitás-bővítés, mert remek, hogy jönnek az új nyelvi feature-ök, de amíg frontenden legalábbis (!) így is library-re szorul az ember a szebb, tömörebb kód érdekében, addig nem okoz akkora felhőtlen örömöt, hogy ezeket is kézhez kapjuk. -
Speeedfire
félisten
Mármint úgy érted, másnak a kódja, amibe nem nyúlhatsz bele? Vagy csak mert csak, jó az vidékre?

Vagy csak mert csak, jó az vidékre?
Valami ilyesmi!
Sok json van, és inkább keycatalog szerű kulcsokkal dolgozok. Egyszerűbb és ritkán változik. Ha pedig mégis, akkor gyorsan át tudom ütni a key-eket a forrásban. -
Speeedfire
félisten
Azt még azért mindenképp szépíteni kellene a kódon, hogy ne stringek legyenek ilyen esetben a switch-ben, meg a helperTypes tömbben sem, hanem konstansok (mármint most ez nem keverendő a string konstansokkal, sszóval érted
), hiszen ha mindenhol stringeket használsz fel, az törékennyé teszi a kódot. (Pl. ha később rájössz, hogy azt nem "healt"-nek, hanem "health"-nek kellene írni, és egyik helyen így használod, másik helyen úgy.
)Nem módosítom ezt a részt.

-
PumpkinSeed
addikt
Ez így elég csúnya, picit zsongott az agyam a kód olvasása közben.

Itt ráadásul a for...in ciklusnak nincs is haszna, sőt.
A getStartTime metódusnévből ráadásul nem érthető, hogy most igazából a szabad órák kezdőidejét szeretnéd lekérni.
Érdemes egyébként néha a sok-sok indexelés több helyen történő használata helyett inkább a ciklusmag elején eltárolni változóba az aktuális értéket, vagy akkor belül is for...in-t használni.
És ezenkívül szebb lenne, ha objektumként passzolnád át tömb helyett, hogy mondjuk egy startTime és nextTime lekérdezhető legyen így attribútumnév szerint (és nem kellene agyonindexelgetni a tömböket).Számomra ez jóval olvashatóbb, persze még ezen is lehetne szépíteni, most 5 percből ennyire futotta:
https://jsfiddle.net/d1jntk9a/1/Szerk.: ja, most nézem, a freehours-nál is asszem többszörösen egymásba ágyazott tömböt szerettél volna, ennek a további indexelése lemaradt, mindegy, a lényeg végül is érthető.
Köszönöm, az biztos, hogy van mit javítani a JS tudásomon, és elég erősen rajta is vagyok, amikor időm engedi. A változónevek meg csak ideiglenesek, refaktoráltam is, csak az a jsFiddle-n nem látszódik.
-
Jim-Y
veterán
Igen, szerintem ne egy filter és egy fat arrow megértésével kezdje valaki, amíg gondot okoz neki, hogy kigyűjtse egy tömbből a páros számokat, tehát még nem tiszta számára, hogy mit jelent egy for/while ciklus. Kezdőként Te sem syntactic sugart raktál a kávédba hagyományos cukor helyett.
Gondolj bele, mit fog fel egy kezdő abból, ha azt írod neki, hogy "Ezt fat arrow-nak hívják ami egy rövidebb syntactic sugar a function expressiönök helyett és lexikálisan bindolja a this-t, kvázi block scoping." 
De ezt a mondatot neked írtam és nem neki. Az ő szemszögéből az, hogy azt írjuk, hogy
function(num) { return num % 2 === 0 } vagy
num => num % 2 === 0az irreleváns, mert a lényeg a filter használata és, hogy az, hogy páros valami úgy nézzük meg, hogy x osztva kettővel a maradék nulla-e.

-
Jim-Y
veterán
Bejött, amit írtam, hogy "egy kezdőnek eleinte magic lehet".
Persze érthető is, sztem kezdőknek érdemes a picit hosszabb, de beszédesebb formát mutatni, és kevésbé a trükköseket, hogy ráérezzenek az ízére.Hát de mi az, hogy magic? Ez a legújabb szabvány, ez a nyelv része, ha magic akkor nem érti a nyelvet és még tanulni kell
Nekem senki ne próbálja meg eladni, hogy ne ezt írjam egy kezdőnek, ha nem érti, semmi gond, csapja fel a doksit és olvassa el, hogy mit jelent. Most ha curryztem volna meg ez-meg-az akkor még megértem, de ez egy nyelvi elem még csak nem is magic 
Illetve én olyan példát szeretek mutatni ami előre viszi az embereket nem stagnál vagy visszahúzza. Ha például foglalkozik ezzel és megtetszik neki, majd netántán ezzel fog foglalkozni, akkor sokkal jobb ha már tudja, hogy mi az hogy fat arrow meg block scoping meg főleg, hogy mi az hogy [].filter.
p.s: szerinted egy filter + fat arrow már poweruser kategória? Mármint komolyan kérdezem

-
Jim-Y
veterán
Végigmész a tömb elemein, egyenként megvizsgálod őket, és ha az adott szám páros, akkor belerakod az elemet egy új tömbbe. Jobbat nem tudsz, ilyenkor muszáj végigiterálni a tömb összes elemén, különben honnan tudnád, melyik a páros?
A Jim-Y által említett módszer is pont ezt csinálja, csak ez egy rövidebben leírható módszer ugyanarra, amit írtam. (Azt nem tudom, van-e érdemi sebességbeli előny vagy hátrány a hagyományos for ciklushoz és tömbbe pakolós módszerhez képest.)"Azt nem tudom, van-e érdemi sebességbeli előny vagy hátrány a hagyományos for ciklushoz és tömbbe pakolós módszerhez képest."
Előny az írásmódban van, sebességben nincs, sőt, elméletileg lassabbnak is kéne lennie a filternek picivel mert:
- belül ez is csak egy for ciklust használ
- de pluszban vannak ellenőrzések, hogy egyáltalán tömb-e amin meghívjuk, stb..De a különbségek elhanyagolhatóak, biztos hogy egy átlagos js projektnél nem ez lesz a szűk keresztmetszet. Akkor pedig a filter elegánsabb, tömörebb, jobban olvashatóbb, leíróbb, chainelhető. Meg hát úgy egyáltalán egy újabb absztrakciós réteg (sort of)

-
Mr Dini
addikt
"Azt szeretném, hogy addig fusson a for loopba, amíg az i értéke I-vel megegyezik."
És ki fogja átállítani azt a mágikus globális I változót?
Igazából egyébként ez a kódrészlet és a feladatspecifikáció teljesen érthetetlen:
"A feladata az, h kiírja a listFiles tartalmát, levágja splittel a sortöréseknél (azaz a következő fájl nevénél) és generál egy random számot, amit utánatesz az 'i' mögé kapcsoszárójelek közt. Azaz a split miatt így tudok hivatkozni a tömbösített változóra. Na szóval értitek...
"
Nem, nem értjük.
Először a splittel készítesz egy tömböt, ez lesz az i változó. Itt gyorsan hozzátenném, hogy leszokhatnál az ilyen teljesen értelmetlen nevű változókról, inkább legyen egy mondatnyi hosszúságú változót, mint egy ilyen értelmetlen fos. Mit jelent az, hogy a tömb után akarsz teni valamit kapcsos zárójelek közt? Úgy érted, hogy a tömb összes stringeleme mögé akarsz fűzni valamit? A tömbbe akarsz bedobni egy újabb változót? Vagy mi a célod?
Mert itt a ciklusok, meg az egész kód ennek fényében tök értelmetlennek tűnik.Már megoldottam.
Nem. Van egy mappa. Ebben csak képek vannak. A listFiles a Taskerben valami ilyesmit ad vissza:
/Mappa/Kep1.jpg
/Mappa/Kep2.jpg
[…]Na nekem az az ötletem támadt, hogy nyomok egy splittet a \n-re, azaz a sortörésekre és ezt belementem 'i' -be. Ekkor ha pl a /Mappa/Kep1.jpg-t szeretném kiiratni, akkor az i[0] kell nekem. Tehát a tömb nulladik eleme. Namost ennek a tömbnek a lenghtje alapján generáltatok vele egy random számot. (Math.floor) Majd ezt a random számot állítom be háttérnek. Eddig működött a dolog. Viszont azt is szerettem volna, ha az előző háttér tömbbeli értékét ne sorsolja ki még 1x, illetve nulla se legyen az a szám, amit így kapok, erre kellett volna nelem a for. A for azt nézte volna meg, hogy az előzőleg "I" Taskeres globális változóval egyezik-e a most generált szám. Ha igen, akkor addig futtatja, míg más nem lesz a kapott eredmény. Csak közbe rájöttem, hogy az amit összedobtam több sebből vérzik. (Pl a setGlobal a forban
) Ezeket közben kijavítottam és while-ra cseréltem a for-t. Ezt sikerült összehozni, ami működőképesnek látszik:var Hatterek =listFiles("Hatterek", false).split("\n");
var number = Math.floor( Math.random()*(Hatterek.length));
while(number == global('OldScrBcg')) {
var number = Math.floor(Math.random()*(Hatterek.length));
}
while(number == 0) {
var number = Math.floor(Math.random()*(Hatterek.length));
}
setGlobal('OldScrBcg',number);
setWallpaper(Hatterek[number]); -
Karma
félisten
"ha van egy jól bekonfigurált szervered (az XAMPP ilyet ad)"
Az IIS is ilyet ad.
A Microsoft Web Platform Installer segítségével ráadásul pár next-next klatty után ez is pont ugyanolyan felhasználóbarát módon telepíthető, mint a többi kapcsolódó termék. (Pl. rákattint az ember, hogy telepíteni akarja a Drupalt/WordPresst (amit aztán leszedhet), és ez behúzza a függőségeket.) Igazából nem is vágom, miért nem marketingeli ezt kicsit jobban a májkroszoft.
Amire figyelni kell, hogy .htaccess helyett Web.config fájl kell, megfelelő alternatív tagekkel...
(Ezeket Te nyilván tudod, nem is neked szól, inkább a kollégának, meg általánosságban.)Azért írtam az XAMPP-t, mert pár hozzászólással előbb ezt linkelte neki Zedz. A portable XAMPP kicsit lightosabb, mint a WebPI által felrakott bármi
, de egyébként tapasztalatnak mindenképp hasznos az IIS is. -
Cathfaern
nagyúr
Hát tényleg nem éri meg a szenvedést, ha már más megtette helyetted, ezért érdemes használni ilyeneket, mint a Chosen, meg hasonlók.

(#5867) Cathfaern:
Jaja, ez nekem is furcsa, hogy az ilyen alapvető elemek kinézetét még olyan módon sem lehet felülbírálni, hogy mondjuk az optionnél a kijelölés színe ne kék legyen. Feltételezem, hogy egyébként a többi részét (mint a file inputot mondjuk) azért nem lehet túlzottan felülbírálni, hogy viszonylag konzisztens legyen a kinézet a böngészőben minden oldalon, és mindig rá lehessen ismerni ezekre az elemekre, de mivel szinte mindenre van workaround, ezért ez a magyarázat sem túl kielégítő.
Igen, az elméleti kiindulás felteszem az amit írsz, csak egyszerűen annyira más a gyakorlat (alig találni rendes kinézetű elemet ezekből), hogy nem értem miért nem rakják bele valamelyik készülő szabványba ennek a lehetőségét. Nyilván régen amikor a JS még nagyon lassú volt, akkor nem volt reális alternatíva a mostani megoldás, de cirka 5 éve már boldog-boldogtalan használja.
-
PumpkinSeed
addikt
Úgy tudom, hogy ezt alapból nem lehet felülbírálni, ezért különálló HTML-elemekre kell "leképezni" a különböző <option>-öket (<div>, <span>, blabla), amiknek már megadhatod nyugodtan a stílusát, csak ezeket szinkronban kell tartani ugye a <select>-<option> elemekkel (hogy a háttérben valójában egy ilyen listából válogass, csak "közvetve"; tehát ha a júzer rákattint az adott divre vagy spanre vagy akármire, akkor kódból válaszd ki a kapcsolódó optiont).
Igazából ezt csinálja a Chosen is, meg a hasonló pluginek.Igazából ez olyan kicsi része a dolognak, hogy nem éri meg itt szenvedni vele.
-
Cathfaern
nagyúr
Úgy tudom, hogy ezt alapból nem lehet felülbírálni, ezért különálló HTML-elemekre kell "leképezni" a különböző <option>-öket (<div>, <span>, blabla), amiknek már megadhatod nyugodtan a stílusát, csak ezeket szinkronban kell tartani ugye a <select>-<option> elemekkel (hogy a háttérben valójában egy ilyen listából válogass, csak "közvetve"; tehát ha a júzer rákattint az adott divre vagy spanre vagy akármire, akkor kódból válaszd ki a kapcsolódó optiont).
Igazából ezt csinálja a Chosen is, meg a hasonló pluginek.Jól tudod. Számomra teljesen érthetetlen módon így van, és nem is látok szándékot arra, hogy ezen változtassanak. Ugyanez igaz checkbox / radio buttonokra és a file feltöltő input-ra is.
-
PumpkinSeed
addikt
Ez a Chosen egyébként egy elég fasza plugin, de nem annyira erre való, hanem inkább <select>-<option> párosokra, szóval egy adott listából történő egyszerűbb kiválasztásra. Egy taglista meg nagyon nagy lehet, azt nem akarjuk betölteni egy ilyen struktúrába.
Én igazából valami css selector-t kerestem amivel el lehet érni a select dropdown részében az elemek hover részét, hogy a kékről valamilyen másra tegyem.
-
Zedz
addikt
"pl egy "javascript objects" tag-et hogy hozol létre?
"
Igazából a tagek egyszavasak szoktak lenni.
Lásd Stack Overflow (vagy az egész Stack Exchange-família). A szóköz helyett pedig tipikusan kötőjelet használnak (mint ott is).
Egyébként a Space-re kötni a dolgot tényleg nincs értelme, annak van, amit írtál, az Enter-hozzáadós (meg gombra kattintós), meg még a lefelé gomb segítségével lehessen kiválasztani a felajánlott taget.(#5856) Zedz:
Igazából annyi a lényeg, hogy mondjuk legalább 3 karakter begépelése után keyupra kezdj keresgélni az adatbázisban potenciális korábbi lehetőségek után AJAX-szal, ajánld fel a júzernek a potenciális tageket, legyen benne eseménykezelés a fentebb említettekre, a felajánlott tagek elfogadása vagy új létrehozása esetén legyen "egyben", elkülönítve a többitől, egyben lehessen törölni, ahogy Stack Overflow-nál, Space-nél tekintsd úgy, hogy egy tag létrejött (mert egy tag egyszavas), tulajdonképpen ennyi a kliensoldal dolga. Ha a Stack Overflow példáját "lemásolod", az szerintem tök jó, mert az nagyon kényelmes.Jó keresőszavakkal azonnal lehet találni erre is SO-n threadet:
http://stackoverflow.com/questions/519107/jquery-autocomplete-tagging-plug-in-like-stackoverflows-input-tagsSzerk.: heh, most látom a Te hozzászólásodat, hogy pont a Stack Overflow példáját akarod lemásolni, jól teszed.
Köszönöm a linket.

-
htc07
addikt
Nagyobb eséllyel meg lenne már oldva a probléma, ha felraktál volna egy jsFiddle-példát, szóval hogy segítséget kapj, saját érdekedben segíts nekünk ennyivel, különben senkinek nem lesz kedve magától összekalapálni egy "tesztkörnyezetet".

(#5843) htc07:
Pedig ennek működnie kell.
Akkor valamilyen requestet tilthat a böngésződ (egyik bővítménye), ha a jsFiddle nálad nem üzemel rendesen.megoldottam egy chrome pluginnal végül
nem volt erőm szenvedni vele, de köszi 
-
htc07
addikt
Köszi, valamiért nem akar működni, gondolom mert egy agyonszkriptelt oldal.

na mindegy, ezen már el tudok indulni.

-
w.miki
veterán
Hát basszus, most nézem, tök igazad van, én meg tök hülyeségeket beszéltem, elég durván felületesen néztem meg, látszik az aznapi tevékenységemen a 3 óra alvás
. 
Mondjuk ettől még tényleg ratyi az a regexp. Eleve furcsa, hogy az <input rész beleírásától miért félt következetesen.
Pl. ez illeszkedik arra az undormány regexpre (a form szigorúan nagybetűvel kezdődjön
):
<Form method="POST" action=''><input name="op" value="asdasd" /><input name="id" value="asdasd" /><input name="fname" value="asdasd" /><input name="hash" value="asdasd" />(#5803) w.miki:
Kódminőségben biztos tudnánk szebbet... ha akarnánk.
(#5804) TheProb:
Heh, milyen fura, még a HTML5 előtti időkből benne ragadt a fejemben, hogy az id csakis akkor valid, ha BETŰVEL kezdődik, a számmal kezdődőek nem azok - de most nézem, HTML5-től kezdve már sima szám is lehet id - sőt, igazából minden (ha nem üres), ha valóban egyedi és nem tartalmaz whitespace-t.(#5809) trisztan94:
"A programozásban nincs olyan, hogy valami egyszer működik, egyszer nem."
Mi? Hát már hogyne lenne?
Olyan szép esetek vannak ilyesmikre, a kedvencem az a fajta hiba, ami debuggolás során nem tapasztalható, csak éles működés során. És erre persze csak elképesztő sok időelkúrás után jössz rá, miután már úgy érzed, hogy végigdebuggoltad az egész világegyetemet, aztán kezdheted vakarni a fejedet, hogy vajon akkor a nem debug módban futás során vajon mi történik, egyszerűen időbeli tényező az oka, vagy netán a többszálú működés alkalmazásodban tapasztalható indeterminizmusa, vagy valami eltérő hardverkörnyezetből előkerülő érdekesség, vagy...vagy...satöbbisatöbbi.nem is akarjátok megpróbálni?

-
TheProb
veterán
Azért, mert így nem írsz felül semmilyen másik, szintén onloadra bekövetkező eseménykezelőt, olyat, amit pl. akár egy másik fájlban határoztál meg (Te vagy akár egy library), hiszen így HOZZÁADSZ egy eseménykezelőt, mint az a nevében benne is van (addEventListener), nem pedig felülvágod az onloadot egy egyenlőségjellel, hogy az lesz az eseménykezelő, és kész, semmi más.
Vegyünk egy nagyon egyszerű példát:
A HTML-struktúrában ez a két fájl van behúzva:...
<script src="testjs-1.js"></script>
<script src="testjs-2.js"></script>
...testjs-1.js tartalma:
window.onload = function() {
alert("asdasd");
}testjs-2.js tartalma:
window.onload = function() {
alert("blabla");
}Ha mindkét fájlban meghatározott eseménykezelő fontos lenne, hogy lefusson a load esemény hatására, hát akkor szomorúan fogjuk tapasztalni, hogy bizony ez nem történik meg, csak a "blabla" felirat fog felpattanni, pedig elvártuk volna, hogy előtte az "asdasd" szöveg is vágódjon a pofánkba.
Most ha átírod így:
testjs-1.js tartalma:
window.addEventListener("load", function(event) {
alert("asdasd");
}, false);testjs-2.js tartalma:
window.addEventListener("load", function(event) {
alert("blabla");
}, false);Akkor innentől kezdve először felugrik az "asdasd", majd a "blabla" feliratú ablak. Pont ezt vártuk el, mindkét eseménykezelő lefutott.
A window.removeEventListener("load", load, false); sor pedig a jsFiddle-re felrakott példában azt jelenti, hogy eltávolítjuk az eseménykezelőt, hiszen ha már egyszer lekezeltük a betöltődés eseményét, akkor teljesen felesleges, hogy rá legyen aggatva egy eseménykezelő, mivel az esemény már bekövetkezett, nem fog többször bekövetkezni.
Még régebben az MDN oldalán láttam, aztán rászoktam a használatára, elméletileg így kevesebb erőforrást eszik a script. Általában egyébként elvileg elég jelentéktelen lehet az ebből adódó különbség, így egy weboldal esetében igazából nem biztos, hogy érdemes vele foglalkozni, hogy ez a sor szerepeljen egyáltalán a kódban, de egyébként alapvetően nem egészséges, ha feleslegesen sok listenert aggatunk fel ide-oda az alkalmazásunkban, ezért spórolok vele, hiszen minden listener azért kér némi erőforrást - így pl. egy böngésző esetén ha sok-sok bővítmény van telepítve, és mindegyik felaggatja a kis listenerjét, majd ott is marad, akkor az már elméletileg számíthat.A többi remélem érthető, kérdezz, ha nem tiszta.
Így oké, az utolsó paraméternek az a false, minek kell és mi cél szolgál?
-
TheProb
veterán
Gondolom a tanár elvárása volt, hogy feltétlenül a list itemekre hivatkozzatok (<li>), de egyébként igencsak kretén példa, mert itt bőven elég lenne a mainList azonosítóval rendelkező <ul> elemre beállítani a színt, és kész, ettől öröklődne a szín a gyerekelemekre is, nem kéne végigszaladgálni for ciklussal semmilyen listitem-tömbön minden alkalommal. A document.getElementById(...)-hívások eredményét is illik letárolni, amikor újból és újból hivatkozol ugyanarra az elemre, pont ugyanazok miatt, amit az előbb írtam.
Csak gyors átalakítással: https://jsfiddle.net/76218j80/2/
Szerk.: persze ez így egyébként még csúnya megoldás, mert néhány változó globális scope-ban elérhető, de most ilyen szempontokat elegánsan leszartam.Ez amúgy így miért jobb?
window.addEventListener("load", function load(event) {
window.removeEventListener("load", load, false); //remove listener, no longer needed
initialize();
}, false);Nem is láttam még ilyen formában a window.onload-ot
-
TheProb
veterán
- Ahogy dqdb írta, itt pl. a színt előre el lehetne tárolni egy változóban, és azt a változót felhasználni minden alkalommal, mivel itt a cikluson belül nem változtatod, ergo értelmetlen mindig újból és újból összefűzögetni a stringet (mikrooptimalizáció, de az ilyen overheadek szépen egymásra tudnak rakódni, meg amúgy is igénytelenség nem figyelni a mikrooptimalizációra, ugyanígy nem hívogatunk egy metódust többször egymás után, hanem annak a visszatérési értékét is eltároljuk - már amennyiben persze nem változik a visszaadott érték menetközben).
- Stílust nem szép állítgatni JavaScript-oldalról, erről itt volt szó nemrég: [link] (1. bekezdés vonatkozik ide is). Persze kérdés, mi a cél. Ezt itt nem árultad el nekünk, hogy mit szeretnél csinálni, úgyhogy nehéz eldönteni, hogy ez a megoldás így elfogadható-e - pl. lehet olyan, hogy valami üzleti logika van mögötte, és a számított értéket kénytelen az ember JavaScriptben beállítani.
- Mi a cél azzal, hogy az oldalon az ÖSSZES list itemet beszínezed? Amúgy hallgass CSorBA kollégára, a szülőelemnek (<ul> vagy <ol>) add meg a színt egyszer, és kész - persze kivétel az, ha egy-egy elem színét felül szeretnéd bírálni, vagy explicite van bedrótozva a CSS-fájlba a list itemek színe.Na, szóval röviden írd le, mi a célod, és csak akkor tudjuk eldönteni, mi lenne rá a jó megoldás.

Egy vasutas vizsgapélda volt 2 éve az egyik tárgyból. Jelen esetben annyit kellett csinálni, hogy a 3 színnek vannak csúszkák 0-255 közötti értékekkel és aszerint kilegózott színre kellett beállítani az összes listaelem színét.
De, hogy konkrét legyek [link]
-
CSorBA
őstag
Hát basszus, most nézem, tök igazad van, én meg tök hülyeségeket beszéltem, elég durván felületesen néztem meg, látszik az aznapi tevékenységemen a 3 óra alvás
. 
Mondjuk ettől még tényleg ratyi az a regexp. Eleve furcsa, hogy az <input rész beleírásától miért félt következetesen.
Pl. ez illeszkedik arra az undormány regexpre (a form szigorúan nagybetűvel kezdődjön
):
<Form method="POST" action=''><input name="op" value="asdasd" /><input name="id" value="asdasd" /><input name="fname" value="asdasd" /><input name="hash" value="asdasd" />(#5803) w.miki:
Kódminőségben biztos tudnánk szebbet... ha akarnánk.
(#5804) TheProb:
Heh, milyen fura, még a HTML5 előtti időkből benne ragadt a fejemben, hogy az id csakis akkor valid, ha BETŰVEL kezdődik, a számmal kezdődőek nem azok - de most nézem, HTML5-től kezdve már sima szám is lehet id - sőt, igazából minden (ha nem üres), ha valóban egyedi és nem tartalmaz whitespace-t.(#5809) trisztan94:
"A programozásban nincs olyan, hogy valami egyszer működik, egyszer nem."
Mi? Hát már hogyne lenne?
Olyan szép esetek vannak ilyesmikre, a kedvencem az a fajta hiba, ami debuggolás során nem tapasztalható, csak éles működés során. És erre persze csak elképesztő sok időelkúrás után jössz rá, miután már úgy érzed, hogy végigdebuggoltad az egész világegyetemet, aztán kezdheted vakarni a fejedet, hogy vajon akkor a nem debug módban futás során vajon mi történik, egyszerűen időbeli tényező az oka, vagy netán a többszálú működés alkalmazásodban tapasztalható indeterminizmusa, vagy valami eltérő hardverkörnyezetből előkerülő érdekesség, vagy...vagy...satöbbisatöbbi.Mindenkivel előfordul

Szerintem arra számíthatott, h. ott lehet id, class ilyesmi egyéb attribútum is.

-
trisztan94
őstag
Hát basszus, most nézem, tök igazad van, én meg tök hülyeségeket beszéltem, elég durván felületesen néztem meg, látszik az aznapi tevékenységemen a 3 óra alvás
. 
Mondjuk ettől még tényleg ratyi az a regexp. Eleve furcsa, hogy az <input rész beleírásától miért félt következetesen.
Pl. ez illeszkedik arra az undormány regexpre (a form szigorúan nagybetűvel kezdődjön
):
<Form method="POST" action=''><input name="op" value="asdasd" /><input name="id" value="asdasd" /><input name="fname" value="asdasd" /><input name="hash" value="asdasd" />(#5803) w.miki:
Kódminőségben biztos tudnánk szebbet... ha akarnánk.
(#5804) TheProb:
Heh, milyen fura, még a HTML5 előtti időkből benne ragadt a fejemben, hogy az id csakis akkor valid, ha BETŰVEL kezdődik, a számmal kezdődőek nem azok - de most nézem, HTML5-től kezdve már sima szám is lehet id - sőt, igazából minden (ha nem üres), ha valóban egyedi és nem tartalmaz whitespace-t.(#5809) trisztan94:
"A programozásban nincs olyan, hogy valami egyszer működik, egyszer nem."
Mi? Hát már hogyne lenne?
Olyan szép esetek vannak ilyesmikre, a kedvencem az a fajta hiba, ami debuggolás során nem tapasztalható, csak éles működés során. És erre persze csak elképesztő sok időelkúrás után jössz rá, miután már úgy érzed, hogy végigdebuggoltad az egész világegyetemet, aztán kezdheted vakarni a fejedet, hogy vajon akkor a nem debug módban futás során vajon mi történik, egyszerűen időbeli tényező az oka, vagy netán a többszálú működés alkalmazásodban tapasztalható indeterminizmusa, vagy valami eltérő hardverkörnyezetből előkerülő érdekesség, vagy...vagy...satöbbisatöbbi.Átfogalmazom:
Egy jól megírt kódban nincs olyan, hogy egyszer működik, egyszer nem.
console.log("yolo");
Minden egyes esetben ki fogja írni, hogy yolo. Nincs olyan, hogy 10x kiírja, egyszer nem.

Nyilván fejlesztés közben vannak bugok, meg furcsaságok.
-
CSorBA
őstag
Ebben a pluginben katasztrofális hülyeségek is vannak, ahogy elnézem, pl. ez:
var param = showtime.httpReq(path).toString().match(/<Form method="POST" action=''>[\S\s]*?name="op" value="([\S\s]*?)"[\S\s]*?name="id" value="([\S\s]*?)"[\S\s]*?name="fname" value="([\S\s]*?)"[\S\s]*?name="hash" value="([\S\s]*?)"/);
Hát ez nem tudom, milyen reguláris kifejezés akar lenni, ami direkt nem illeszkedik SEMMIRE?
(Legalábbis erre illeszkedő stringet értelmes+hozzáértő ember nem ír le.) Vagy-jel nélkül fordul elő benne többször is adott attribútum, amire vizsgálódni akar (pl. name, value), szóval ez tuti sosem fog illeszkedni semmilyen stringre.Ezenkívül borzalmasan elavult és gány az egész kód, pl. a <font> tag ezer éve deprecated HTML-ben, JS-ben eval()-t használ, amit nem illik, meg még lehetne sorolni, de a lényeg, hogy spagettikód hatása van az egésznek, szóval nehézkes lesz ezt javítani: a gond az, hogy szerintem most hirtelen nehezen fogsz találni olyat, aki tudja debuggolni neked ezt az éles környezetében, és kideríteni, hogy mi pontosan miért nem működik. Ettől függetlenül ha elmondod, pontosan mikre is lenne még szükséged az indavideón kívül, amit használnál, de nem működik, akkor azt meg tudjuk nézni, és megmondani, mi lehet a gond vele.
Ez annyira szörnyen néz ki, hogy megnéztem. Ez fog illeszkedni, méghozzá olyan Form-ra, amiben van op, id, fname, hash input, és ezek értékeit szedi ki. Az inputok között lehet más input is. Erre persze .*-ot szokás használni, de végül is ennek megfelelője a [\S\s]*.
Gondolom aki írta nem értett a regexhez és valahonnan ezt sikerült kiguglizni,Amúgy [^"]*-ot kellett volna használni a value-kban, a köztes helyeken meg mondjuk .*?-ot.
-
w.miki
veterán
Ebben a pluginben katasztrofális hülyeségek is vannak, ahogy elnézem, pl. ez:
var param = showtime.httpReq(path).toString().match(/<Form method="POST" action=''>[\S\s]*?name="op" value="([\S\s]*?)"[\S\s]*?name="id" value="([\S\s]*?)"[\S\s]*?name="fname" value="([\S\s]*?)"[\S\s]*?name="hash" value="([\S\s]*?)"/);
Hát ez nem tudom, milyen reguláris kifejezés akar lenni, ami direkt nem illeszkedik SEMMIRE?
(Legalábbis erre illeszkedő stringet értelmes+hozzáértő ember nem ír le.) Vagy-jel nélkül fordul elő benne többször is adott attribútum, amire vizsgálódni akar (pl. name, value), szóval ez tuti sosem fog illeszkedni semmilyen stringre.Ezenkívül borzalmasan elavult és gány az egész kód, pl. a <font> tag ezer éve deprecated HTML-ben, JS-ben eval()-t használ, amit nem illik, meg még lehetne sorolni, de a lényeg, hogy spagettikód hatása van az egésznek, szóval nehézkes lesz ezt javítani: a gond az, hogy szerintem most hirtelen nehezen fogsz találni olyat, aki tudja debuggolni neked ezt az éles környezetében, és kideríteni, hogy mi pontosan miért nem működik. Ettől függetlenül ha elmondod, pontosan mikre is lenne még szükséged az indavideón kívül, amit használnál, de nem működik, akkor azt meg tudjuk nézni, és megmondani, mi lehet a gond vele.
no közben visszatért az oldal, az .eu domain-hez, így megint jó a plugin...

de ilyesmi plugin szeretnék még mint ez, ami a weboldalakon található (filmezz.eu, moovie.cc, sorozatbarát) videókat automatikusan lejátssza a tároló oldalak (vidtome, youwatch, flashx.tv, openload stb..) felugró ablakai nélkül
(csak nem tudom, kit lehetne megkérni erre, szívességből, mert én nem tudom megírni
) -
tick
aktív tag
Alapvetően annyi a baj azzal, hogy JavaScripttel állítgatod a stílusát egy DOM-elemnek, hogy így keversz két különböző területet: alapvetően a CSS feladata meghatározni az oldal megjelenését (benne van a nevében, hogy stíluslapokat készítesz), JavaScripttel pedig inkább a viselkedését illik manipulálni az oldalnak. Nyilván vannak kivételek, de ez pont olyan példa, amire érvényes. Persze nem érdemes túlizgulni, ez már csak szépítgetés, szemantikai okoskodás.
Most amúgy kíváncsiságból rákerestem a dologra, és találtam egy cikket, ami vitatja az osztályok ráhelyezésének vagy levételének elvét, és inkább a data-attribútumok használatát javasolja:
http://toddmotto.com/stop-toggling-classes-with-js-use-behaviour-driven-dom-manipulation-with-data-states/
Elfogadható, amit ír, de túlzásba esik az osztályok használatának elvetésével. De egyébként nem rossz a data-attribútumok használata sem."Lenne esetleg értelme minden sort egy ID-val ellátni, a szűrést pedig client-side/local storage-ban elvégezni majd az eredmény alapján állítgatni a displayt?"
Semmi értelme nem lenne ennek a megoldásnak. A szűrést így is az összes adaton kellene elvégezni, itt pedig semmiféle előnyt nem jelentene az, hogy csavarintasz és bonyolítasz egyet a dolgon.
Gondolj bele, a mostani megoldásod egy document.getElementsByClassName hívás, ami visszatér egy HTMLCollectionnel, amin végigmész egy for ciklussal, és megnézed, benne van-e az adott sorban valahol a keresett elem, aztán kész vagy. Ez is nagyon gyorsan fog végezni, még ha többezer elemed lenne, akkor se lenne vészes, a DOM-manipulálás már más kérdés. Ha viszont átállnál arra, hogy id-k szerint kérdezgess le, akkor értelemszerűen az id-kat is nyilván kellene tartani egy másik tömbben (mert különben honnan tudod, hogy miket kellene lekérdezni? Ha meg nem tudod a konkrét id-kat, akkor vissza kell térned az eredeti, amúgy ezerszer értelmesebb megoldásra), és azon a tömbön kellene végigmenned, lekérdezned id szerint az elemet, majd pont ugyanezt a keresést végrehajtani. Nem nyertél semmit, sőt, még overheadet is tettél a dologba (plusz egy-egy lekérdezés minden elemre az id szerint is, miután megkaptuk a tömbből az elemet).
Azt meg nem tudom, hogy érted, hogy "client-side"-ban elvégezni a keresést, most is kliensoldalon keresel.
localStorage-be átpakolni a keresést meg megint semmi értelme, mit keresne ott, miért kellene perzisztens módon tárolnia a kliensnek az összes adatot. Nem beszélve arról, hogy valószínűleg az oldaladon változni fognak ezek a megjelenített és szűrhető adatok, így a localStorage-et mindig szinkronban kellene tartani az újabb adatokkal.Köszönöm, nagyon érdekes cikk. meg is próbálom implementálni

-
Zedz
addikt
Jaja, kicsit megváltozott a jsFiddle, amúgy szerintem előnyére, legalábbis nekem jobban bejön, jobb helyen vannak a JS library-k annál a lenyílónál.
Picit tényleg fura ez a Language megnevezés, de végül is ha úgy vesszük, ezek tényleg mintha más nyelvek lennének, más szintaktikát használsz, a JavaScript sajátjánál sokkal értelmesebbet.![;]](//cdn.rios.hu/dl/s/v1.gif)
ES2015 szerintem már egész vállalható. Volt szerencsém CoffeScript kódot látni, de szerencsére nem én voltam azon a projekten, és az első benyomás alapján nem is szeretnék ilyenen dolgozni.

-
Zedz
addikt
Be van húzva:
De amúgy bocsi, asszem hülyeséget mondtam, és igazad van, JavaScriptre visszaváltva elég a "use strict"; az elejére, és Blink-motorral menni fog ("Uncaught SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode"). Firefoxban még nem ("SyntaxError: let is a reserved identifier"). Mindenesetre ezeket a problémákat áthidalja a Babel.
Bal oldalt kerestem az External Resources alatt, ajjj.

Csak nekem fura a LANGUAGE megnevezés ott?
-
Zedz
addikt
Amit Jim-Y írt, az BabelJSben íródott. Mondjuk azt nem igazán értem, minek szopatni ilyesmivel valakit, aki nagy eséllyel nem ért a Babelhez.

Itt van plain JavaScriptben (jQuery sincs behúzva; itt mondjuk direkt leszedtem az onLoadot is, hogy lásd, hogy kell kezelni az ablak betöltődésének eseményét):
http://jsfiddle.net/sm3e5wjz/1/Nem csak simán ES2015? Nem látom a Babelt behúzva.
-
libamajas
tag
Több hiba is van benne. Egyrészt az a nagy hiba, hogy nem raktad fel nekünk jsFiddle-re, hogy egyből tesztelni tudjuk, másrészt nem használtad a kód kijelölése után itt a fórumon a Programkód gombot, hogy normálisan nézzen ki.

Aztán:
1.
var napok = ["H", "K", "Sz", "Cs, P"];
ez ez akart lenni:
var napok = ["H", "K", "Sz", "Cs", "P"];
(külön a "Cs", "P" stringek)2.
document.write("<div>" + napok + "</div>");
Ennek semmi értelme, mert a napok egy tömb, míg te a tömb cikluson belüli aktuális elemére vagy kíváncsi, ami a napok[i], vagyis az előzőnek a ciklusváltozóval indexelt formája.
Ezenkívül document.write()-ot nem használunk a gyakorlatban. SOHA. Még ha a tanár azt is mondja, akkor sem.
Ha a tanár azt mondja, akkor le van maradva. Bár már akkor sem volt értelme, amikor divatos volt használni.3.
fokok(i)
itt már láthatóan indexelni akartál, csak nem jött össze. Indexelésre a szögletes zárójelet használjuk, tehát így: fokok[i].4.
document.write(<img src='https://cdn0.iconfinder.com/data/icons/good-weather-1/96/weather_icons-68-128.png'>);
Itt az <img ...> részt úgy kezded el, hogy elfelejtetted stringként átadni. Tehát ez így nem lesz jó.
Így jó lenne:
document.write("<img src='https://cdn0.iconfinder.com/data/icons/good-weather-1/96/weather_icons-68-128.png'>");
A feltétel másik részénél ugyanez.Itt láthatsz egy működő változatot:
http://jsfiddle.net/5hvwzquf/=====================================
(#5776) Agostino:
Akkor jó.

-
Agostino
addikt
Én túl sokat nem tettem hozzá, inkább Jim-Y-nek köszönd, ő volt az érdemi segítő.

Egyébként nem teljesen értettem, hogy konkrétan mit jelent, hogy "a mootools-more.js egyik sora szerint hibás a dátum (all my wat) a csv-ben", erről nem ártott volna egy PONTOS hibaüzenet vagy screenshot vagy bármi (mondjuk eddig sem voltál túl bőbeszédű, amikor a pontos hibákról érdeklődtünk
), mert alapvetően nem illlik egy CMS valamelyik, egyébként nagy eséllyel nem véletlenül behúzott fájlját csak úgy átnevezgetni, hogy hiába keresgélje, ne találja meg - ez nem megoldás, csak átmeneti tüneti kezelés egy hirtelen zavaró problémára, amivel összefügg a fájl behúzása, de ez hosszú távon aztán más problémákat is okozhat.
A $-jelet fő változóként használó library-knél és/vagy frameworköknél felmerülhet egy névütközés, ez pont így van a jQuery-nél és a MooTools-nál is, ezt pl. a jQuery.noConflict(); segítségével lehet feloldani (példák bőven vannak a neten)."mondjuk eddig sem voltál túl bőbeszédű, amikor a pontos hibákról érdeklődtünk"
sokszor magam sem értem mi a pontos hiba : ) na de most igyekszem egzakt lenni: mootools - firebug szerint: "Error: Invalid month string" "if (!match.length) throw new Error('Invalid ' + type + ' string');" @ mootools-more.js (line 4307, col 1) - mod közben látom van rá peccs. ezzel már oké, helyén marad a mootools és hiba sincsen.
-
Agostino
addikt
Mondjuk az a baj, hogy eleve nem szerencsés keverni a MooTools-t és/vagy másik hasonló library-t és a jQuery-t. Valahogy a Joomlával mindig csak a baj van.
Amúgy nincs mit, lényeg, hogy megoldódott.hát, igazából eszem ágában sem volt keverni, sőt meg sem fordult a fejemben, hogy bekavarhat a joomla motyói közül bármi is. mondjuk mostantól meg sem lepődök semmi sem... mindenestre megy és ez a lényeg, szóval nagy köszi még egyszer, ha mást nem, a hibakonzol hasznosságát megtanultam : )
-
martonx
veterán
"elvi akadálya annak sem volna, hogy a csv menjen, de ott maga a file nem tetszik neki. nem húz be belőle adatot, pedig utf8 wo bom, vessző tagolás stb mint a dokumentáció szerint..."
De megnézted, hogy az AJAX-kommunikáció során milyen hiba keletkezik? Mit jelent, hogy "nem tetszik neki", ezt honnan látod, miből tudod? Kapsz hibaüzenetet? Vagy mi történik?Meg mondjuk egy konkrét jsfiddle példa sem ártott volna, hogy lássuk egyáltalán a hivatalos dokumentációt tudtad-e értelmezni.
-
tick
aktív tag
Nem szép megoldás a style.display property-t változtatgatni JavaScriptből, inkább osztályt érdemes rátenni vagy épp levenni róla, ami a display tulajdonságot CSS-ben beállítva tartalmazza, sokkal rugalmasabb megoldás.
Köszi! Van valami gyakorlati előnye is vagy csak szimplán esztétikusabb?
Lenne esetleg értelme minden sort egy ID-val ellátni, a szűrést pedig client-side/local storage-ban elvégezni majd az eredmény alapján állítgatni a displayt?
Tudom egy kicsit overkill, de érdekes kihívás lenne ha van teljesítménybeli haszna is
-
Speeedfire
félisten
Régvótmáaz, biztos azóta már sokkal minőségibb kérdéseket teszel fel.
(just kiddin') Kérdezzzzz, most!!!444NÉGY 
Ugyan olyan sz*rul tudok még mindig kérdezni.
![;]](//cdn.rios.hu/dl/s/v1.gif)
-
fordfairlane
veterán
document.write()-ot értelmes ember nem használ.
![;]](//cdn.rios.hu/dl/s/v1.gif)
(#5714) Speeedfire:
Ilyenekre amúgy ott lenne a jsbin.com, ahova teljes kód felpakolható, ahonnan aztán lehet kopipasztázni, de most épp fogalmam sincs, miért nem üzemel egyáltalán.
Az elavult javascript anyagok szinte mindegyikére jellemző, hogy document.write-tal valósít meg kliensoldali dinamikus kódot, és ha oktatásról van szó, akkor az oktatónak, illetve vizsgáztatónak megfelelés legalább olyan fontos lehet, mint maga a tananyag. Ha nem fontosabb.
-
Speeedfire
félisten
Hádenemiskötöttem beléd!
(Kivételesen.
) Gondolom amúgy is ismered, csak rácsodálkoztam, hogy jé, pont nem műxik a jsbin.(#5733) Cathfaern:
Jaja, beleírattam az összefoglaló legelső sorába, mert kis naivan azt gondoltam, hogy az már eléggé feltűnő.
(#5737) Zedz:
Azért amikor az ember elkezd tanulni programozni, a szakmai infós angol kezdőként nagyon fárasztó tud lenni. A megoldás az, hogy eléggé kitartónak kell lenni.
Há'deszintemindigbelémkötvalakittafórumon. Nagyon már nem is járok fel ide kérdezősködni, inkább máshol teszem fel a kérdéseket.

-
Zedz
addikt
Hádenemiskötöttem beléd!
(Kivételesen.
) Gondolom amúgy is ismered, csak rácsodálkoztam, hogy jé, pont nem műxik a jsbin.(#5733) Cathfaern:
Jaja, beleírattam az összefoglaló legelső sorába, mert kis naivan azt gondoltam, hogy az már eléggé feltűnő.
(#5737) Zedz:
Azért amikor az ember elkezd tanulni programozni, a szakmai infós angol kezdőként nagyon fárasztó tud lenni. A megoldás az, hogy eléggé kitartónak kell lenni.
Ha másért nem is, a stackoverflowért megéri küzdeni.
![;]](//cdn.rios.hu/dl/s/v1.gif)
-
Speeedfire
félisten
document.write()-ot értelmes ember nem használ.
![;]](//cdn.rios.hu/dl/s/v1.gif)
(#5714) Speeedfire:
Ilyenekre amúgy ott lenne a jsbin.com, ahova teljes kód felpakolható, ahonnan aztán lehet kopipasztázni, de most épp fogalmam sincs, miért nem üzemel egyáltalán.
Jól van na, kössél belém.
![;]](//cdn.rios.hu/dl/s/v1.gif)
Nekem a pastebin maradt a fejemben. -
PumpkinSeed
addikt
Chrome-ban (46.0.2490.86 m) az if (navigator.getUserMedia) feltétel nem is teljesül ebben a formában, mert az undefined. A navigator.webkitGetUserMedia függvény viszont létezik.
Jobb fallback így néz ki:
Capturing Audio & Video in HTML5
http://www.html5rocks.com/en/tutorials/getusermedia/intro/navigator.getUserMedia = navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia ||
navigator.msGetUserMedia;Olvasd el a cikk többi részét is, elég jól összefoglalja a témát.
Szerk.:
https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getUserMedia
Most látom, a Navigator.getUserMedia() deprecated.Olvastam, viszont már nagyjából működésre bírtam. Viszont ha deprecated akkor ezt a MediaStream-et kellene használni? Csak mert az elérhető tutoriálok 99,999%-a getUserMedia-t használ. :/
-
martonx
veterán
"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).

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
-
inf3rno
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.
)"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.
-
inf3rno
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).É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. -
dqdb
nagyúr
Szép találat, türelmes voltál.
Végül is ez esetben meg lehetne tenni, hogy a fájtl letölti, átírja ennek megfelelően, és az adott kérésre ezt az új tartalmat szolgálja ki saját extensionnel, DE ennek igen komoly hátránya, hogy "bedrótozza" a korábbi kódot, és a fájl frissülése nála nem lesz érvényes.
Azt nézem, hogy van egy ilyen rész a kódban:setTimeout(function() {
$('iframe').each(function() {
var src = $(this).attr('src');
if(src.match(/youtube\.com/i) || src.match(/video\.mno\.hu/i)) {
reloadBlocker = true;
}
});
if(!reloadBlocker) {
document.location.assign(document.location.href);
}
}, reloadTime);(fúj)
Ezek szerint ha saját extensionből csak beágyaz egy elrejtett YouTube-os iframe-et (lényeg, hogy az src attribútum a youtube-ra mutasson, nyilván az egész oldalt nem érdemes beágyazni
), akkor a reloadBlocker változó értéke true lesz, és a document.location.assign(document.location.href); sor nem fog lefutni.
Borzasztó ronda megoldás mindenképp, de legalább nem fog 20 perc múlva (most ez van a reloadTime-ban) újrafrissülni az oldal...Akkor íme egy Chrome/Opera extension kettőtök kutatása alapján egy kicsit kulturáltabb injektálási módszerrel.
manifest.json
{
"content_scripts":
[
{
"matches": [ "http://mno.hu/*", "https://mno.hu/*" ],
"js": [ "content.js" ],
"run_at": "document_start"
}
],
"web_accessible_resources":
[
"patch.js"
],
"manifest_version": 2,
"name": "setTimeout patch",
"version": "1.0.0"
}patch.js
Window.prototype._setTimeout = Window.prototype.setTimeout;
Window.prototype.setTimeout = function(func, delay) {
if (func.toString().indexOf("reloadBlocker") !== -1)
console.log('blocked setInterval', delay);
else
Window.prototype._setTimeout.apply(this, arguments);
};content.js
try {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.responseText) {
var patch = document.createElement("script");
patch.type = "text/javascript";
patch.innerText = xhr.responseText;
(document.head || document.documentElement).appendChild(patch);
}
};
xhr.open("GET", chrome.extension.getURL("patch.js"), true);
xhr.send(null);
}
catch (ex) {
console.log(ex);
}Vagy Firefox alá Greasemonkey scriptként:
// ==UserScript==
// @name setTimeout patch
// @namespace mno.hu
// @include http://mno.hu/*
// @include https://mno.hu/*
// @version 1
// @run-at document-start
// @grant none
// ==/UserScript==
window._setTimeout = window.setTimeout;
window.setTimeout = function(func, delay) {
if (func.toString().indexOf("reloadBlocker") !== -1)
console.log('blocked setInterval', delay);
else
window._setTimeout.apply(window, arguments);
};Érdekes módon itt csak a window példányt tudtam manipulálni, és abban lecserélni a metódust, magát a Window osztályt nem, hogy a prototípusban cserélgessek.
Természetesen nem vártam ki a 20 percet, a naplóba írt üzenettel teszteltem a kódot.
-
cocka
veterán
Szép találat, türelmes voltál.
Végül is ez esetben meg lehetne tenni, hogy a fájtl letölti, átírja ennek megfelelően, és az adott kérésre ezt az új tartalmat szolgálja ki saját extensionnel, DE ennek igen komoly hátránya, hogy "bedrótozza" a korábbi kódot, és a fájl frissülése nála nem lesz érvényes.
Azt nézem, hogy van egy ilyen rész a kódban:setTimeout(function() {
$('iframe').each(function() {
var src = $(this).attr('src');
if(src.match(/youtube\.com/i) || src.match(/video\.mno\.hu/i)) {
reloadBlocker = true;
}
});
if(!reloadBlocker) {
document.location.assign(document.location.href);
}
}, reloadTime);(fúj)
Ezek szerint ha saját extensionből csak beágyaz egy elrejtett YouTube-os iframe-et (lényeg, hogy az src attribútum a youtube-ra mutasson, nyilván az egész oldalt nem érdemes beágyazni
), akkor a reloadBlocker változó értéke true lesz, és a document.location.assign(document.location.href); sor nem fog lefutni.
Borzasztó ronda megoldás mindenképp, de legalább nem fog 20 perc múlva (most ez van a reloadTime-ban) újrafrissülni az oldal...Jajj de ez már ilyen jquerys borzalom, amiből még annyit se értek.
Igazából nem azért nem értem, mert nem tudnám megérteni, hanem mert nem ismerem a függvényeket. -
Karma
félisten
Szép találat, türelmes voltál.
Végül is ez esetben meg lehetne tenni, hogy a fájtl letölti, átírja ennek megfelelően, és az adott kérésre ezt az új tartalmat szolgálja ki saját extensionnel, DE ennek igen komoly hátránya, hogy "bedrótozza" a korábbi kódot, és a fájl frissülése nála nem lesz érvényes.
Azt nézem, hogy van egy ilyen rész a kódban:setTimeout(function() {
$('iframe').each(function() {
var src = $(this).attr('src');
if(src.match(/youtube\.com/i) || src.match(/video\.mno\.hu/i)) {
reloadBlocker = true;
}
});
if(!reloadBlocker) {
document.location.assign(document.location.href);
}
}, reloadTime);(fúj)
Ezek szerint ha saját extensionből csak beágyaz egy elrejtett YouTube-os iframe-et (lényeg, hogy az src attribútum a youtube-ra mutasson, nyilván az egész oldalt nem érdemes beágyazni
), akkor a reloadBlocker változó értéke true lesz, és a document.location.assign(document.location.href); sor nem fog lefutni.
Borzasztó ronda megoldás mindenképp, de legalább nem fog 20 perc múlva (most ez van a reloadTime-ban) újrafrissülni az oldal...Találtam egy rövidebb verziót.
Ez a blokk átverhető a window.history.pushState-tel:if(document.location.href.match(/hirtv_kesleltetett/i) || document.location.href.match(/hirtv_live/i)) {
reloadBlocker = true;
}Például így: window.history.pushState({}, null, "hirtv_live").
Egy kicsit fejre áll tőle a böngésző, de a feltétel biztosan igaz lesz tőle

-
cocka
veterán
Uhh, ezt én is de tudom utálni, régen ilyet a prog.hu is csinált, hogy automatikusan frissült a lap, de nem csak frissült, át is irányított, így hiába volt későbbi olvasásra félretéve pár cikk, ránéztem egy idő múlva, és már csak a címlapot láttam. Gratula annak, aki kitalálta...
Írtam is nekik levelet ezzel kapcsolatban, hogy emiatt szoktam le a cikkjeik olvasásáról, hogy azóta is van-e ez a jelenség, fogalmam sincs, mert tényleg nem olvasom őket. 
A kérdésre amúgy most érdemben nincs időm reagálni, de látom, kaptál már ötletet, csak hát JS-hez értés nélkül nehéz lesz ezekkel bármit is kezdeni... Amivel hozzákezdhetnél, az az, hogy megnyitod a webfejlesztő panelt, és az ottani keresővel minden, oldalról letöltött forrásban elkezded keresgélni (Blink-alapú böngészőkben (pl. Chrome, Opera) a Ctrl+Shift+F segítségével!) az említett "setInterval" és "setTimeout" szavakat.Ezt már megtettem, csak az a baj, hogy annyi van, mint a nyüves. Van vagy 15 js fájl és szinte majdnem mindben van ilyen időzítő függvény.
-
PumpkinSeed
addikt
De a Te kódod szempontjából ez nem is meglepő, mivel ellenőrzöd, hogy van-e a stringedben meg nem engedett karakter, és ha igen, épp akkor valid. Neked pont az ellenkezője kell. Ezért írta dqdb, hogy negálnod kell (nézd meg az ő kódját).
Igen az megvan, csak valamiért nem kaptam meg az input .value értékét és azért nem adott rendesen értéket. De most már működik rendesen, köszönöm a segítséget.
-
PumpkinSeed
addikt
Érthető jetarko kolléga álláspontja. (Erősen) típusos nyelvekből érkezve elsőre borzasztó idegesítő tud lenni a gyenge típusosság, időbe kerül, míg az ember megszokja. Épp ezért a PHP-val összevetni, hogy ahhoz képest szerinted milyen csudajó, pont nem jó példa, mivel az is gyengén típusos nyelv.
Mondjuk ha valaki színtiszta Javázás/C#-ozás/C++/stb. után kerül a JavaScript világába, akkor egy JS-kód rohadt zavaró lehet a szemnek. Ettől még JavaScriptben is lehet szép kódot írni, de szerintem sosem lesz olyan kellemes "külsőre", mint mondjuk egy jól kinéző C#-kód. Nyilván ez szubjektív, szerintem így van.
Alapvetően a gyengén típusos nyelveknek nagyon is megvan a maguk szerepe, a probléma általában szerintem az lehet velük, hogy sokakat sarkall spagettikód írására. Ettől még erősen típusos nyelvben is lehet borzalmasan gusztustalan kódokat írni, de mondjuk aki ilyen problémáktól szenved, valószínűleg nem egy kódmágus, és azt legalább a fejlesztőkörnyezet figyelmezteti, hogy valamit szarul csinál.Mondjuk van benne igazság, talán a Java-val lenne összehasonlítási alapom, de mivel egy szemeszterben tanultam egyszerre a kettőt ezért az sem az igazi. Bár annyi összehasonlítási alapom van, hogy Java gyak vizsga előtti héten végig Javascripteztem, és mivel papíron ment a vizsga a változóim nem kaptam típust.

-
Zedz
addikt
Mármint mi érdekes benne?
Hogy mire fel van ekkora hype körülötte?
-
Zedz
addikt
Elég vicces, hogy a cím teljesen ellentmond a tartalomnak:
"Assembly-szerű nyelv válthatja le a JavaScriptet a böngészőkben"
"Erre a problémára akar egy új megoldást kínálni a W3C egy új munkacsoportja, ami egy assembly-szerű nyelv értelemzőjének beépítését javasolja a modern böngészőkbe a JavaScript mellé."Már ez is kifejezi, hogy nem LEVÁLTÁSról van szó, hanem legfeljebb kiegészítésről. Meg is őrülnék, ha assembly-szerű nyelven kellene programozni kliensoldalon. Nem tudom, programoztatok-e már assembly-ben, hát szenvedjen vele az, akinek muszáj, vagy akinek van ilyen jellegű perverziója.
JavaScript MELLÉ komoly teljesítménynövekedés esetén nem hülyeség, de lehet, hogy ez is megmarad egy ilyen "volt róla szó"-projektnek, hacsak valaki nem tesz bele nagy lóvét, hogy nyomassa orrba-szájba."megmarad egy ilyen "volt róla szó"-projektnek"
Valami ilyesmi féle jövőt képzelek el a dolognak. A nagy JS körüli hype viszont érdekes, az eredeti tervekhez képest szinte már mindenhol tetten érhető ez a nyelv.
-
Zedz
addikt
Azért ez ritka durva sértés

Bocsánat, de másra nem tudtam gondolni hirtelen.
![;]](//cdn.rios.hu/dl/s/v1.gif)
-
Zedz
addikt
TL;DR

Szia honda, nem is tudtam, hogy új accod van!

-
Zedz
addikt
HTML-fájl, scriptfájl, az alapvető HTML-struktúra létrehozása helyett nem lett volna egyszerűbb és gyorsabb picit csak simán bedobni a konzolba a kódot, ha már meg van nyitva?

A kérdezőnek lehet érthetőbb így, ha látja másnak hogy megy. Gondolom.

-
DR|FTK|NG
veterán
Rettentő komplikált egy ilyen feltételvizsgálat... Ne szórakozz már. Programozásnál NEM LÉTEZIK olyan, hogy megbízható felhasználó. SOHA. A létező legrosszabb eset felől kell megközelíteni az ilyen jellegű validálásokat. És amúgy is MINDIG először a szerveroldali ellenőrzést írjuk meg, és CSAK azután a kliensoldalit, mivel a kényelem, gyorsaság és hasonló szempontok abszolút másodlagosak a biztonsággal szemben.
Egyébként elég csak annyi, hogy valaki régebbi böngészőt használ, ami a HTML5-ös feature-öket még nem támogatja, és máris buktad a kliensoldali ellenőrzésedet, simán átmegy a beírt szám a szűrőn, mivel szerveroldalon egyáltalán nincs szűrőd, és még kliensoldalon sem működik a dolog, és még csak nem is gonosz júzerről volt szó. Hanem olyanról, aki valamilyen oknál fogva egy elavult szart használ. Remélem, ezek fényében nem kérdés, hogy azonnal megírod a szerveroldali ellenőrzést, főleg, hogy normális esetben nem kéne, hogy több időt elvegyen pár percnél (bár ebbe azt is beleszámítottam, hogy az ember elindítja a használt fejlesztőkörnyezetet (vagy akár szövegszerkesztőt), és megnyitja a fájlt).
Oké, oké, oké.

Belső hálózaton lenne, a gépen(amiből csak egy lesz) a(z egyik) legújabb Chrome menne, csak az az egy oldal lenne megnyitva, semmi más. Nem hiszem, hogy egy 50+-os nénike át tudná írni, aki a gépet is alig tudja használni.

Lesz szerver oldali is, rábeszéltetek. Köszönöm Neked is.
-
indigo
aktív tag
Hehe, és tényleg, reprodukáltam a jsFiddle-példában a problémát, <div class="modal">-ba rakva a visszakapott tartalmat, és így tényleg üresen jelenik meg. Hát ez a library működéséből következik, a megoldás simán az, hogy
1.) a visszaadott tartalomból kihagyod a "modal" osztállyal ellátott divet (végül is felesleges)
2.) átírod a displayModal függvényt úgy, hogy csak egy $(content).modal(); sor legyen benne.
Utóbbinál viszont garantálnod kell, hogy egy jQuery-nek átadható tartalom van benne, tehát pl. mindenhol szerepel egy konténerelem, pl. épp a <div class="modal">...</div> vagy hasonló, de ez annyiból törékeny, hogy pl. már egy asdasd<div class="modal">...</div>qweqwe nem működne, mert a jQuery-nek átadva így szintaktikai hibát kapnál (a jQuery ezzel a tartalommal így már nem tud mit kezdeni, elég kipróbálni azt, hogy $('asdasd<div class="modal">...</div>qweqwe'), "Syntax error, unrecognized expression" lesz az eredmény).
Persze annyiból így is-úgy is törékeny lesz a dolog, hogy ha van egy olyan div a kapott tartalomban, ami tartalmazza a "modal" osztályt, akkor az abban lévő tartalmat eleve kidobja. Szerintem ilyen szempontból szarul működik a library, de hát ez van.Minden elismerésem és köszönöm a munkádat és a teljes körű magyarázatot!

-
indigo
aktív tag
Érdekes, mert úgy tűnik, a tartalom lekérése sikeresen meg is történik, ahogy látszott a korábban a konzolra kiírt tartalomból, tehát valamiért csak épp a modális ablak betöltése az adott tartalommal nem sikeres. Az általam definiált displayModal függvényt is átmásoltad?
Igazából itt a legértelmesebb a böngészőn belüli debuggolás lenne, úgy, hogy egy breakpointot raksz a sikeres AJAX-kérést jelző eseménykezelőbe, meg mondjuk a displayModal függvénybe, megnézve, hogy a tartalom az elvárt-e, mi a változók aktuális értéke, stb... Egyszerű megközelítésként, ha még nem debuggoltál (egyébként elég egyszerű), egészítsd ki mondjuk ezt is egy konzolra kiíratással:function displayModal(content) {
console.log('content: ', content);
$('<div>', {
html: content
}).modal();
}Most jobb ötletem nincs, ha a debuggolás még nem megy, mint hogy vizsgáljuk meg ilyen módon, hogy a tartalmak az elvártak-e, eljut-e idáig, stb. Ha a tartalom ezenbelül megfelelő, akkor nem nagyon értem, miért nem működik nálad, amikor a jsFiddle-példában jó, de derítsük ki egyelőre ezt, hogy idáig eljutunk-e.
(#5201):
Hát köszi, de azért bőven szoktam tévedni.
A konzol szerint nincs hiba: kép.
Szívesen megpróbálkozok a debuggal.
---------------
Vááá, ha kiveszem a meghívott html div-jéből a .class="modal"-t, akkor jó, lefut minden. -
indigo
aktív tag
Szívesen. Ja, a konzolra ezt az üzenetet azért írja, mert beleraktam egy console.log(...) sort.
Azt akár ki is törölheted, debuggolási célra jó a console.log - de ebből kiindulni nem lehet, mivel ez nem hiba.
Ha a Network fülre kattintasz a webfejlesztő panelon, ott látszik valami pirossal jelölt erőforrás, meg valami hibakód, amikor megpróbálja betölteni a tartalmat? Ha a megfelelő linkre kattintasz, akkor mi történik?Hibakód szerintem nincs, itt egy kép, ha F12-t nyomok és frissítem az oldalt, hogy újra betöltődjön.
-
indigo
aktív tag
Működésre bírtam neked:
http://jsfiddle.net/bha6er48/20/
Kommenteztem a kódot, remélem, az alapján egyértelmű lesz, ha valami nem tiszta, kérdezz nyugodtan.
A jsFiddle API-t használtam az AJAX-tesztelésre, ezért szerepel bedrótozva az URL-nél a /echo/html/ a loadContentFrom függvény első sorában (a böngészők biztonsági beállításai miatt nem is lehetne másik domainre kérést indítani), azt az egy sort majd kitörölheted az éles kódban! Az $.ajax résznél majd a POST-metódust változtasd GET-re, ez is a jsFiddle miatt volt szükséges.Köszi szépen a segítséget.
Egyelőre nem működik nálam. Átültetve megjelenik a Modal ablak, de nem hozza be a hir.html tartalmát
Kitöröltem az url='/echo/html/'-t, megváltoztattam a type:-ot GET-re és kitöröltem a //INNENTŐL ... //IDÁIG sorokat.
Szerintem nálam van a hiba
Chrome böngésző -> F12 -> Console a következőt írja:
data: <div class="modal">
<H1>Ez egy másik weboldal szövege - AJAX használatával.</H1>
</div> -
indigo
aktív tag
Ha lehet, rakj fel egy egyszerűsített példát inkább a jsFiddle-re, pont ilyen szemléltetésre és demózásra való. Az egyes külön lévő panelekbe fel tudod rakni a HTML-, CSS-, ill. JS-kódodat. A HTML-résznél ebben az esetben nem kell az alapvető struktúra, elég a <body>-ban lévő részt bemásolni. Így több esélyed van arra, hogy segítséget nyújt valaki közülünk, amikor picit ráér.

Szerintem a legtöbbünknek nem lesz kedve kibontani a zip-fájlodat, aztán helyileg tesztelni, majd felrakni helyetted a javított/javasolt jsFiddle-példát.
Köszönöm a választ. Megpróbáltam a jsFiddle-t, a CodePen-t és a Plnkr.co-t is, de egyiken sem tudom megmutatni a problémámat.
A jsFiddle-re feltöltöttem a külső anyagokat (css, js, html fájlok), de nem hajtja végre a feladatot (hiába kattintok az IDE feliratra, nem hajtja végre), egyébként itt a link hozzá.
A CodePen annyival előrébb van, hogy végrehajtja a feladatot, tehát rákattintva az IDE feliratra megjeleni egy új oldal tartalma, de nem Modal Window-ként mutatja meg, itt a link hozzá.
Ezért, végelkeseredésemben összecsomagoltam egy 9k fájlba és így osztottam meg.Itthon, ha szerkesztem Bracket-ben, akkor Google böngészőben végrehajtja a feladatot. Feltöltöttem egy szerverre, azon nézve szintén végrehajtódik az IDE feliratra való kattintás. Viszont simán Total Commanderből indítva a html-t nem hajtódik végre a böngészőkben, egyedül az Internet Explorer-ben, ha engedélyezem az aktív tartalmat.
-
Zedz
addikt
Tesztelésre meg az egyszerűen elérhetőek közül ott a console.log() vagy console.debug() (és társai), ami nem egy ilyen korlátozott, gyakorlatban sehol sem használható fos, mint a document.write(), sőt, akkor már megtanulhatnál JavaScript-kódot is debuggolni, nem egy akkora művészet, a böngészők debuggerében sem nehéz kiigazodni. Persze az is érthető, ha adott esetben ki akarod íratni az értékeket, mert mondjuk gyorsabb áttekinteni, vagy ilyesmi, de akkor is már inkább a console-t használd erre (és nyisd meg a webfejlesztő panelt tesztelgetéshez, ott a konzol is, meg ott érhető el a debugger is, stb.).
+1 a console-nak.

-
PumpkinSeed
addikt
Akkor hagyd ott a kurzust.
Kifejezetten nem ajánlatos. Gondold végig, a gyakorlatban mikor használnád egy éles weboldalon? Ugye?Amúgy rákerestem, meglepődtem volna, ha nincs Stack Overflow thread a témával kapcsolatban, itt aztán mazsolázhatsz:
http://stackoverflow.com/questions/802854/why-is-document-write-considered-a-bad-practiceAmúgy csak tesztelésre szoktam használni. El akarok mélyülni a JS "OOP"-ban, és azokat próbálgatom. A legegyszerűbb mondja meg ha mindent kiíratok, mi mit ad meg ilyenek. Amúgy ilyen idióta játékokat szoktam csinálni mint a snake meg fallabda, ott egyáltalán nem jelenik, meg szóval gyakorlati haszna nincs a document.write-nak.
-
PumpkinSeed
addikt
Mármint így nem sokáig marad ott a sok hiba?

Amúgy már feltűnt, a document.write()-ot mennyiszer használod, ha tanácsolhatom, szokj le róla, nincs szükséged rá, sőt.
Mondhatjuk úgy is. Amúgy sztem nem használom sokszor a document.write-t.

Nem ajánlatos használni? Csak mert a kurzuson ez az elfogadott kiíratási módszer. -
PumpkinSeed
addikt
Ja értem, hát ilyen nemsokára leadandó házikat azért az ember kicsit másképp közelít meg, mint egy éles projektet.
Előbbinél inkább az a lényeg, hogy a legtöbb pontot összekapard (max. nem kapod meg a teljes pontot amiatt, hogy nem ott jön be a figura, ahol kéne, ha nem marad időd kijavítani, de legalább a többi feladatból is megoldottál valamennyit), utóbbinál meg az, hogy tényleg a speckónak megfelelően működjön, különben az ügyfél mérges lesz. Ha valós, nem mindig előkerülő, de adott esetben elég problémás bugról van szó egy éles projektnél, akkor azt nem jó ellökdösni, hogy majd megcsinálom, mert akkor elfelejtődhet...Ezért írtam így: "Úgy általánosságban"

-
dqdb
nagyúr
Ja értem, hát ilyen nemsokára leadandó házikat azért az ember kicsit másképp közelít meg, mint egy éles projektet.
Előbbinél inkább az a lényeg, hogy a legtöbb pontot összekapard (max. nem kapod meg a teljes pontot amiatt, hogy nem ott jön be a figura, ahol kéne, ha nem marad időd kijavítani, de legalább a többi feladatból is megoldottál valamennyit), utóbbinál meg az, hogy tényleg a speckónak megfelelően működjön, különben az ügyfél mérges lesz. Ha valós, nem mindig előkerülő, de adott esetben elég problémás bugról van szó egy éles projektnél, akkor azt nem jó ellökdösni, hogy majd megcsinálom, mert akkor elfelejtődhet...adott esetben elég problémás bugról van szó egy éles projektnél, akkor azt nem jó ellökdösni, hogy majd megcsinálom, mert akkor elfelejtődhet
Nem, ilyen nem fordul elő sosem, mert ugyebár mindenre van egyXKCDtestcase![;]](//cdn.rios.hu/dl/s/v1.gif)
És erről jutott eszembe: valaki belemélyedt már jobban a kliensoldali automatizált tesztelésbe? Vajon mekkora beletanulási ideje lehet egy Jasmine+PhantomJS párosnak? A többi rész után szeretném a webes UI tesztelését is automatizálni, a kollégákkal ellentétben a Jenkins mindig ráér foglalkozni vele, és alaposan dolgozik

-
Zedz
addikt
Ja értem, hát ilyen nemsokára leadandó házikat azért az ember kicsit másképp közelít meg, mint egy éles projektet.
Előbbinél inkább az a lényeg, hogy a legtöbb pontot összekapard (max. nem kapod meg a teljes pontot amiatt, hogy nem ott jön be a figura, ahol kéne, ha nem marad időd kijavítani, de legalább a többi feladatból is megoldottál valamennyit), utóbbinál meg az, hogy tényleg a speckónak megfelelően működjön, különben az ügyfél mérges lesz. Ha valós, nem mindig előkerülő, de adott esetben elég problémás bugról van szó egy éles projektnél, akkor azt nem jó ellökdösni, hogy majd megcsinálom, mert akkor elfelejtődhet...El kell adni mint fícsőr.
![;]](//cdn.rios.hu/dl/s/v1.gif)
-
martonx
veterán
De ez hogy lehet, ha elvileg többéves webfejlesztői tapasztalata van? Úgy értem, biztos van valami oka: ennyire nem volt köze a frontendhez, végig csak backend-kódokat készítgetett, és az évek alatt elfelejtette? Vagy sosem tudta? Engem tényleg érdekel, ez hogyan fordulhat elő.

Azzal védekezett, hogy ő inkább az embereit irányította, mintsem az operatív munkában vett részt. De mondjuk bármennyire is nem programozott napi szinten, nem hiszem, hogy a gugli segítségével, el kellene vérezni egy ilyen szintű beugró feladaton? Illetve az is kérdéses, hogy hogy irányítod seniorként az embereidet, hogy review-zod a kódjaikat, ha abszolút fingod sincs a programozáshoz?
Ráadásul az egész folyamat úgy indul, hogy nyisd meg az általad leginkább használt IDE-t, szóval akár még az intellisense-re is lehet támaszkodni.
Na mindegy, a lényeg hogy tényleg tragikusak a felvételizők. -
Jim-Y
veterán
Nem hiszem, hogy még neked kéne szégyellni magad a nyelv egyik hibája miatt.
Na, már látom előre az anyázásokat és hőbörgéseket, feldühödött "te vagy a hülye!"-jellegű reakciókat, de nem hiszem, hogy az egy jó dolog, ha a nyelv próbálja valahogy korrigálni az amúgy potenciálisan elkúrt kódot, ezzel pont, hogy hibát belerakva az amúgy adott esetben pont nem hibás kódba (mert elméletileg az általad mutatott kód nem kellene, hogy az legyen).BRENDAN: ... But long story short, there was an idea in JavaScript that I was pursuing, and maybe a few others saw it, too, of a language that wasn’t C-like. It was easy to use. It was meant for people who were building things inductively. They were learning programming for the first time. And they didn’t necessarily have to know where semicolons had to go, or even curly braces. I lost the curly brace front. On the semicolon front I said, “It’s ridiculous to reject a program because of a missing semicolon. We should do some kind of error correction procedure.” So, I made one up on the spot and that became automatic semicolon push.
[Laughter]
CHUCK: I kind of hacked this in and it stayed.
BRENDAN: Yup.
AARON: That’s awesome.
JOE: And 15 years later, people are still fighting over it.
JAMISON: That’s every programmer’s nightmare, right?
CHUCK: It’s so true.
JAMISON: Just the hack [inaudible] that you made.
AJ: I felt a sudden tremor in the force as if a thousand semicolons suddenly screwed up everything.
[Laughter]
BRENDAN: Yeah, there are definitely some issues there. But in fact, I remember Jamie Zawinski was writing some JavaScript and he had a long return expression so he put it on the next line with no semicolon after the return. And he was outraged that ASI would insert a semicolon after the return making the ‘return’ return the undefined value and the next line becomes dead code, a useless expression. It’s unreachable in the control flow of that function. He was totally outraged. [Laughs] But I said, “It’s too late. I can’t change it.” Once you ship things on the web, it’s very hard to change it.
-
PumpkinSeed
addikt
Szívesen.
Ezt nem értem, honnan hova akarod "áttenni az inputot"? Ez utóbbi mit jelent? Szóval mit szeretnél elérni? -
PumpkinSeed
addikt
Gondold végig: Te a document.getElementById()-vel lekérsz egy elemet, majd annak próbálod elérni a document tulajdonságát - ennek semmi értelme, nem lesz document tulajdonsága/attribútuma.
Ha végig akarsz menni az elemeken, akkor több lehetőséged is van, például:
- document.querySelectorAll segítségével, egy selector felhasználásával megkeresed a vonatkozó elemeket; pl. ha mindegyik checkbox el van látva a fruit-checkbox osztállyal, akkor ez aztán egészen szigorúan csak azokat fogja megtalálni:
var fruitCheckboxes = document.querySelectorAll('input[type="checkbox"].fruit-checkbox');
Ez egy NodeListet ad vissza, ezeken végig tudsz menni egy for ciklussal simán.
Pl.:
for (var i = 0; i < fruitCheckboxes.length; i++) {
var currentFruitCheckbox = fruitCheckboxes[i];
console.log(currentFruitCheckbox.name + ' - is it checked? ', currentFruitCheckbox.checked === true);
}
Ilyesmi.
- ha egy tömbben van összegyűjtve, hogy milyen nevű elemeket keresel (pl. a name attribútuma tartalmazza az elemnek a gyümölcs nevét), és egy adott konténerelemen belül szeretnél csak keresni, és kifejezetten egy elemre, akkor megteheted az Element.querySelector() segítségével, pl.:var fruitCheckboxContainer = document.getElementById('fruit-checkbox-container');
var fruitNamesArray = ['apple', 'orange', 'pear'];
for (var j = 0; j < fruitNamesArray.length; j++) {
var currentFruitCheckbox = fruitCheckboxContainer.querySelector('input[name="' + fruitNamesArray[j] + '"]');
if (currentFruitCheckbox === null) {
console.log('A checkbox with the name "' + fruitNamesArray[j] + '" does not exist in the fruit checkbox container');
continue; // go on to the next one
}
console.log('is "' + fruitNamesArray[j] + '" checked? ', (currentFruitCheckbox.checked === true));
}- stb., a lehetőségekből még elég sok van, de ezek elég egyszerű példák.
Felraktam neked ide egy demót:
http://jsfiddle.net/Sk8erPeter/Ls015fk7/Köszönöm a segítséget.
Igazából én arra jöttem rá, hogy felesleges meghatározni a szülő elemet, mert ugye az egyikből teszem át a másikba az inputot, szóval ha ahova tenni akarom ott is be van pipálva és úgy teszi át mindegy, mert már eleve ott van. Szóval annyira nem is fontos, megnézem egy for-al hogy melyikek vannak bepipálva és attól függ, hogy a felhasználó hova kattint átteszem őket.
-
PumpkinSeed
addikt
Értelmezted a hibaüzenetet?
formId.document.getElementById(fruitsArray[i])
--> Cannot read property 'getElementById' of undefined
Elég egyértelmű... ha kifejted a formId változót, mi értelme van annak, hogy
document.getElementById("valami").document.getElementById(fruitsArray[i])
?
Gondolom a valamin belüli mandarin vagy ilyesmi. Ezért tettem fel a kérdést, hogy ezt hogy lehet megcsinálni.
-
Aureal
őstag
A SoundCloud lejátszója elvileg csak valóban SoundCloudról származó zenéket tud lejátszani (legalábbis a talált infók alapján).
De beírtam Google-be, hogy "jquery waveform player", és ezeket találtam:
http://www.wavesurfer.fm/
http://justwave.beotiger.com/player.html
http://codepen.io/FadedShadows/pen/crjza
Aztán biztos van még, ami említésre méltó.Van egy ilyen BBC-s oldal, ami egy kicsit komolyabb ezeknél, szerintem talán még az ilyen jellegű előfeldolgozás (itt egy C++-alkalmazás segítségével végzi el) az, ami igazán komolyan vehető (értsd: valóban "helyes" hullámokat generáló megoldás):
http://waveform.prototyping.bbc.co.uk/
(kapcsolódó cikk: http://www.bbc.co.uk/rd/blog/2013/10/audio-waveforms)Köszi!
-
PumpkinSeed
addikt
Miért nem használod a dokumentációkat? Sokkal kevesebb szopásban lenne részed (persze az értő olvasás is követelmény hozzá):
https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName"Returns an array-like object of all child elements which have all of the given class names."
Ebből elég jól látható, hogy ez a metódus az összes olyan gyerekelemet visszaadja, ami az adott (nálad épp a shipsIndex2 nevű) osztállyal van ellátva, és mindezt egy tömbszerű szerkezetben fogod megkapni. Tehát nem is használhatsz olyan szintaktikát, ami egyetlen elemre vonatkozik. Akkor sem, ha csak egyetlen találat van.
Magának a metódusnak a nevéből (getElementsByClassName) is igen jól látszik, hogy ilyen viselkedésre lehet számítani - ott a többesszám.
Ezenkívül abból is, hogy az általad mutatott screenshoton látható konzolon is szögletes zárójelek között van az az egy elem, amire illeszkedett a keresésed.
Tehát minden ilyen esetben, ha a fene fenét eszik is, és csak egy elemre illeszkedett a keresésed, akkor is valamilyen tömbszerű szerkezetben fogod megkapni azt az egy találatot is, ennek megfelelően is kell tehát elérni.==============
(#5062) Speeedfire :
"A localStorage-et kipróbáltam, de annyira nem jött be."
Hogy érted, hogy nem jött be? Milyen célra?
Amúgy valóban nem egy szofisztikált valami, de alapvető dolgokra bőven elegendő lehet.Igen tudom, csak mivel sürgetett az idő ezért a doksit nem olvastam végig csak a példaként kódot néztem meg. De egyetlen példakódban sem volt ott a [0].
Köszönöm a segítséget.
-
Speeedfire
félisten
"Nem láttam se gyorsabbnak, se egyszerűbbnek, mint a js változókat."
Mitől lenne már gyorsabb localStorage-en vagy bármin keresztül elérni, mint a változókhoz hozzányúlva?
Egyébként szerintem ennyi alapján simán elegendő lenne neked a localStorage is, csak sanszos, hogy rosszul használtad.

"Mitől lenne már gyorsabb localStorage-en vagy bármin keresztül elérni, mint a változókhoz hozzányúlva?"
Miért ne lehetne gyorsabb? Nem tudhatod.
"Egyébként szerintem ennyi alapján simán elegendő lenne neked a localStorage is, csak sanszos, hogy rosszul használtad."
Miért? Mert leírtam, hogy mire használtam?
-
fordfairlane
veterán
"Nem láttam se gyorsabbnak, se egyszerűbbnek, mint a js változókat."
Mitől lenne már gyorsabb localStorage-en vagy bármin keresztül elérni, mint a változókhoz hozzányúlva?
Egyébként szerintem ennyi alapján simán elegendő lenne neked a localStorage is, csak sanszos, hogy rosszul használtad.

Mivel nem tudjuk, hogy pontosan mit és miért tárol el, ezért az sem biztos, hogy storage jellegű a feladat. Az is lehet, hogy szimpla Angular model is elég lenne a state tárolásához.

-
Speeedfire
félisten
Miért nem használod a dokumentációkat? Sokkal kevesebb szopásban lenne részed (persze az értő olvasás is követelmény hozzá):
https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName"Returns an array-like object of all child elements which have all of the given class names."
Ebből elég jól látható, hogy ez a metódus az összes olyan gyerekelemet visszaadja, ami az adott (nálad épp a shipsIndex2 nevű) osztállyal van ellátva, és mindezt egy tömbszerű szerkezetben fogod megkapni. Tehát nem is használhatsz olyan szintaktikát, ami egyetlen elemre vonatkozik. Akkor sem, ha csak egyetlen találat van.
Magának a metódusnak a nevéből (getElementsByClassName) is igen jól látszik, hogy ilyen viselkedésre lehet számítani - ott a többesszám.
Ezenkívül abból is, hogy az általad mutatott screenshoton látható konzolon is szögletes zárójelek között van az az egy elem, amire illeszkedett a keresésed.
Tehát minden ilyen esetben, ha a fene fenét eszik is, és csak egy elemre illeszkedett a keresésed, akkor is valamilyen tömbszerű szerkezetben fogod megkapni azt az egy találatot is, ennek megfelelően is kell tehát elérni.==============
(#5062) Speeedfire :
"A localStorage-et kipróbáltam, de annyira nem jött be."
Hogy érted, hogy nem jött be? Milyen célra?
Amúgy valóban nem egy szofisztikált valami, de alapvető dolgokra bőven elegendő lehet.Nem láttam se gyorsabbnak, se egyszerűbbnek, mint a js változókat. Alapvetően ajax kérések válaszát tároltam el benne.
-
Cathfaern
nagyúr
Tényleg nagyon komolyak ezek a DevTools-újdonságok! Rengeteget fog számítani fejlesztésnél, debuggolásnál.
Amúgy az a rész vicces, ahol elemzik a jQuery jelenlegi hülyeségeit, amik jelentősen rontják a teljesítményt, és szinte következetesen azt hozzák ki a dologból, hogy használj plain JavaScriptet.
Egyet leszámítva, hogy ne használd a .hide()/.show() metódusokat, mert rohadt lassú, inkább váltogasd az osztályokat az elemen az elrejtéshez/megjelenítéshez - na én ezt speciel régóta követem, pedig nem vágtam, hogy ilyen komoly teljesítménybeli problémák vannak vele, mert szebb is, hogy nem égetődik bele a kódba a display:none; vagy display:block;.Ugye alapvetően minél magasabb szintű a nyelv, annál lassabb lesz. C is lassabb az Assemblynél
És persze a jquery önmagában nem egy külön nyelv, de plusz egy réteg, így mindenképp lassabb lesz. A kérdés csak az, hogy az általa hozott könnyebb fejlesztés / tömörebb, átláthatóbb kód nem hoz-e több hasznot. Nyilván ha az ember 2D-s játékot ír html tagekből építkezve, akkor nagyon nem mindegy pár % eltérés se, de ha egy landing page-en a gomb megnyomása után nem 10, hanem 200 ms után tűnik el a szöveg (200%-os lassulás ugye), az nagyon nem fog meghatni...
Szóval meg van a jquerynek is a maga szerepe, de tény, hogy nem szabad ezt sem ész nélkül alkalmazni. -
Jim-Y
veterán
Tényleg nagyon komolyak ezek a DevTools-újdonságok! Rengeteget fog számítani fejlesztésnél, debuggolásnál.
Amúgy az a rész vicces, ahol elemzik a jQuery jelenlegi hülyeségeit, amik jelentősen rontják a teljesítményt, és szinte következetesen azt hozzák ki a dologból, hogy használj plain JavaScriptet.
Egyet leszámítva, hogy ne használd a .hide()/.show() metódusokat, mert rohadt lassú, inkább váltogasd az osztályokat az elemen az elrejtéshez/megjelenítéshez - na én ezt speciel régóta követem, pedig nem vágtam, hogy ilyen komoly teljesítménybeli problémák vannak vele, mert szebb is, hogy nem égetődik bele a kódba a display:none; vagy display:block;.Hát igen.. jó dolog (volt) a jQuery, ezt szerintem senki nem is vitatja, csak azóta, hogy az IE6/7 kezd tényleg kimenni a divatból, és azóta, hogy a WebAPI is sokat fejlődött, pl querySelector(All) egyre kevesebb szerep jut a jQuerynek. Ugye a jQ pont amiatt volt jó, hogy elmosta a böngészők közti különbségeket, de a modern böngészők már sokat fejlődtek ebben. Nem tudom, hogy tudjátok-e, de a jQuery kb 90%-át 3 dolog teszi ki. Az egyik, és legnagyobb rész, az a Sizzle, utána az ajax XHR, majd a jQ animations. Ebből az elsőre már pár éve van jó alternatíva, az előbb említett querySelector személyében viszonylag jó támogatottsággal. A másodikra majd talán most lesz jó alternatíva a fetch API személyében, utóbbira pedig vannak sokkal jobb stanalone libek, meg ugye ott a HTML5 + CSS3. Ezen dolgok miatt jósolom amúgy, hogy az elkövetkezendő években durván tovább fog csökkenni a jQuery népszerűsége. Ami már most is tart amúgy...
-
_ak_
addikt
"Egyszerű és nagyszerű, meg sem fordult a fejemben, hogy 'id'-ra tegyem a formázást..."
Még jó is, hogy nem fordult meg a fejedben, mert illik sokkal általánosabban megoldani az ilyesmit, nem pedig id-vel szórakozni, és ezzel kb. örökre rögzíteni, hogy melyik elemet is fogod buzerálni. Vannak esetek, amikor ez nem számít, de többnyire mégis.Amúgy örülök, hogy nálad működik a "javított" demó, mert nálam konkrétan semmit nem csinál, igaz, összesen 5 másodpercnyi időt töltöttem a kipróbálásával, nem próbáltam elgondolkozni, mit csinál és mit kellene csinálnia.

Ez most nem téma, mert ez csak egyszerű landing page, szóval belefér, bár ez az egyetlen -id lesz rajta.
![;]](//cdn.rios.hu/dl/s/v1.gif)
-
Speeedfire
félisten
"Egyszerű és nagyszerű, meg sem fordult a fejemben, hogy 'id'-ra tegyem a formázást..."
Még jó is, hogy nem fordult meg a fejedben, mert illik sokkal általánosabban megoldani az ilyesmit, nem pedig id-vel szórakozni, és ezzel kb. örökre rögzíteni, hogy melyik elemet is fogod buzerálni. Vannak esetek, amikor ez nem számít, de többnyire mégis.Amúgy örülök, hogy nálad működik a "javított" demó, mert nálam konkrétan semmit nem csinál, igaz, összesen 5 másodpercnyi időt töltöttem a kipróbálásával, nem próbáltam elgondolkozni, mit csinál és mit kellene csinálnia.

Ezt nem igazán értem, miért baj a specifikus megoldás? A legtöbb esetben nem általános alkalmazásokat fejlesztenek, hanem egyedit.

-
Cathfaern
nagyúr
Király! Kíváncsi vagyok, mit hoznak ki belőle. Amúgy meglepően aktívak a Microsoftnál fejlesztői téren, elég durván sok változás van mostanság, kezdve az ASP.NET-es nyitástól a Linux és Mac felé, némi open source-osodáson, az ingyenes, mégis profi Visual Studio Community Edition megjelenésén, meg sok egyéb újításon át egészen eddig az együttműködésig (ja, meg bár ez inkább felhasználói szempontból érdekes, ugye tervezik a Windows 10-hez az új Spartan-böngészőt (amiből még nem tudom, mi lesz), stb.).. Eléggé tesznek érte, hogy magukhoz csábítsák a fejlesztőket.
(#4981) Jim-Y:
Jaja, belénkverték.
Hát az "easier to reason about" tudtommal csak annyit jelent, hogy könnyebb valami mellett érvelni. Nem?(#4984) Cathfaern:
Jó ez a kép.
Egyszerűen az történt, hogy a Microsoft egy komplexitási szinttel fentebb lépett. Ugye eddig a fő terméke egy operációs rendszer volt. Ami miről szól? Lényegében arról, hogy ők adnak egy "keretet", amire aztán mindenki olyan szoftver ír amit csak akar, ők csak az alap körítést adják. Manapság egyre kevésbé jó buli az operációs rendszer. Egyelőre még monopol helyzetben van, de ahogy az Android, iOS kezd tért nyerni magának, és elkezdenek megváltozni a felhasználói szokások (gép előtt ülés helyett fotelből tablet), úgy lesz egyre csökkenő üzlet. Viszont időközben kialakult egy új részben szoftveres (ez fontos, mert a Microsoft alapvetően továbbra is szoftver cég) komplexitási réteg, mégpedig a cloud. Microsoft rájött, hogy hosszú távon csak úgy marad talpon maradni, ha ennek a fejlesztésére és értékesítésére helyezi a hangsúlyt. Viszont innentől mindegy neki, hogy milyen operációs rendszer, mindegy milyen szoftver, csak az legyen kompatibilis (és optimális!) az ő cloudjával. Lásd az első lépések, hogy a linux kernel fejlesztésébe nem keveset fektettek.
Amúgy a Spartan nem csak felhasználók szempontjából lehet érdekes, az IE-ben lévő fejlesztői eszközök már most hasznosabbak egy-egy részfeladatban, mint a konkurens megoldások, ha továbbfejlesztik ezeket, akkor a fejlesztők számára megfontolandó lesz a Spartanon való fejlesztés (elsődlegesen. Legalábbis tapasztalataim alapján az emberek jó része fejlesztés során egy böngészőt használ elsődlegesen, max közben és/vagy utólag megnézi a többin is hogy rendben van-e minden). Aminek ugye tudjuk mi lesz a következménye
(gyk: több Spartanon optimális kód lesz, mint egyéb böngészőmotorra optimális kód) -
PumpkinSeed
addikt
Igen, ezt értem, de miért nem kifejezetten a négyjegyűekre keresel rá egy regexppel, és egyből cseréled is őket egy valamiString.replace()-szel, ha pont az az érdekes? Miért a negáltat akarod keresgélni?
Akkor mutatom, hogy hogy néz ki most.
var randText = "Valami 44344 nagyon 4342 menő 44 van itt.";
var minta = /[^\d]\d{4}[^\d]/gi;
document.write(randText.replace(minta," XXXX "));A negált azért kell, hogy minden ami előtte vagy utána van kivéve szám.
-
PumpkinSeed
addikt
Bevallom, a konklúziódat nem értettem, miért negálni akarod, hogy bármi, ami NEM négyjegyű szám, miért nem volt jó a \d{4}, vagy az az érdekes, tehát azt szeretnéd kiszűrni és esetleg jelezni a felhasználónak, ami NEM felelt meg a szabályoknak, és emiatt azt kotrod ki?
A négyjegyű számokat kell XXXX-re alakítani. De csak a 4 jegyűeket. Ha már 5 jegyű akkor nem lehet átalakítani az első 4-et XXXX-re.

-
Zedz
addikt
Király! Kíváncsi vagyok, mit hoznak ki belőle. Amúgy meglepően aktívak a Microsoftnál fejlesztői téren, elég durván sok változás van mostanság, kezdve az ASP.NET-es nyitástól a Linux és Mac felé, némi open source-osodáson, az ingyenes, mégis profi Visual Studio Community Edition megjelenésén, meg sok egyéb újításon át egészen eddig az együttműködésig (ja, meg bár ez inkább felhasználói szempontból érdekes, ugye tervezik a Windows 10-hez az új Spartan-böngészőt (amiből még nem tudom, mi lesz), stb.).. Eléggé tesznek érte, hogy magukhoz csábítsák a fejlesztőket.
(#4981) Jim-Y:
Jaja, belénkverték.
Hát az "easier to reason about" tudtommal csak annyit jelent, hogy könnyebb valami mellett érvelni. Nem?(#4984) Cathfaern:
Jó ez a kép.
Nekem tetszik az MS mostani hozzáállása a dolgokhoz. Szimpatikusabbak már egy ideje.

-
Cathfaern
nagyúr
Bocsánat a totális OFF-ért, de úgy látom, még mindig nem kopott ki a fejlesztői közbeszédből ez a "meredek tanulási görbe", pedig ez a kifejezés meglehetősen értelmetlen, ezt már itt is leírtam: [link].
Ha az x tengelyen az idő van, az y tengelyen pedig a tudás mértéke, akkor a meredek pont azt jelenti, hogy rohadt gyorsan tanulható. Pedig általában ellenkező jelentéssel szokták használni. Ha fordítva lenne ábrázolva, úgy még talán lenne is értelme, de ez csak azt bizonyítja, hogy a kifejezés jelentése csupán értelmezés kérdése, tehát körülményes, feleslegesen finomkodó (vagy nem is tudom, hogy mondjam, lehet, hogy az "okoskodó" szó már erős
), simán írhatnánk azt, hogy "hosszú idő alatt tanulható", "nehéz", "elsajátítása egy hosszabb folyamat", stb. 
Az általam linkelt grafikon ugye nem tanulási görbe, hanem hogy mennyire tetszik az AngularJS

De amúgy a meredek tanulási görbét ebben az értelemben szokták érteni: [link] De tény, hogy ez köznyelv csak, technikai értelemben neked van igazad
-
Jim-Y
veterán
Bocsánat a totális OFF-ért, de úgy látom, még mindig nem kopott ki a fejlesztői közbeszédből ez a "meredek tanulási görbe", pedig ez a kifejezés meglehetősen értelmetlen, ezt már itt is leírtam: [link].
Ha az x tengelyen az idő van, az y tengelyen pedig a tudás mértéke, akkor a meredek pont azt jelenti, hogy rohadt gyorsan tanulható. Pedig általában ellenkező jelentéssel szokták használni. Ha fordítva lenne ábrázolva, úgy még talán lenne is értelme, de ez csak azt bizonyítja, hogy a kifejezés jelentése csupán értelmezés kérdése, tehát körülményes, feleslegesen finomkodó (vagy nem is tudom, hogy mondjam, lehet, hogy az "okoskodó" szó már erős
), simán írhatnánk azt, hogy "hosszú idő alatt tanulható", "nehéz", "elsajátítása egy hosszabb folyamat", stb. 
Huu pedig amugy errol meg olvastam is egy cikket, ami pont errol a kifejezesrol szolt -> steep learning curve. Sajnos tenyleg rossz beidegzodes, mert sajnos ez jut eszembe eloszor ha azt akarom kifejezni, hogy X dolgot talan nehezebb vagy tobb ido elsajatitani mint Y-t :/
Ez amugy szerintem pont olyan fogalom, mint a "easier to reason about". Aminek oszinten szolva sosem ertettem meg pontosan a jelenteset

Szv ja.. evvan'

-
Cathfaern
nagyúr
És ezek a Te érzéseid is, hogy pár anyázás után eljutsz a legvégén oda, hogy ez a legüberfaszább keretrendszer a világon és még azon túl is (tehát az Óperenciás-tengeren is túl + 1), vagy csak úgy bemásoltad ezt a képet?
![;]](//cdn.rios.hu/dl/s/v1.gif)
Én totál átérzem a képet
Relatív új nekem is, jelenleg a "I can't believe how difficult they make some of this stuff!" és a "Very cool" között vagyok félúton, miután egy adott dologgal szívtam 2 napot, majd az adott részt átírtam angular-os "best practice" szerint (ami első ránézésre nagyon bonyolultnak tűnt), és utána rögtön működött

-
Tibcsi55555
tag
Ja, hát igen, jsFiddle-nél ez szándékos, hogy az egyes kódok jól elkülönüljenek.
Ebből lehet kiindulni, ez alapján készítettem neked egy egy az egyben kimásolható példát, itt akár online játszhatsz is vele, átírhatod a kódot, és meglátod, mi történik vele:
http://jsbin.com/fujoluyugu/1/editVidd az egeredet a linkek fölé. A linkeket hasonló módon készítsd el a saját oldaladon, ahogy itt mutattam, a lényeg, hogy a data-tooltip-img attribútum értéke az legyen, ami a kép közvetlen linkje. Remélem, így már el fogsz tudni indulni.

Nagyon nagyon köszi a segítséget, hatalmas előre lépés így ez most nekem

Egy dolgot szeretnék még kérdezni, hogy a felsorolás miatt megjelennek a pontok a lista elején.
Esetleg lehet olyan csinálni szerinted hogy a 2 linket egy táblázatba betenni ?
<table> </table> -re gondolok. Így szépen egymás mellett lenne a két link.Köszi
-
Tibcsi55555
tag
Most ezt nem értem, a konkrét példa, amit fordfairlane belinkelt, az miért nem jó? Az egy nagyon egyszerű kód, csak annyit kell tenned hozzá, hogy működjön az oldaladon, hogy a jQuery-t és a jQuery UI-t behúzod, aztán a selectorokat kicseréled a sajátjaidra, és kész vagy.
Bocs, hogy értetlenkedek, a példa, ami fordfairline linkelt, nagyon jó, csak nem tudom hogy pontosan mit másoljak és milyen sorrendben.
Két szeparált frame-t látok, az egyikben a div parancs van,a másikban a kód. -
adam_
senior tag
Ez nagyon egyszerű, a :hover részhez még hozzáadsz egy osztályt is, amire ugyanezek a tulajdonságok érvényesek (vesszővel elválasztva, pl. .skill_line:hover, .skill_line_hovered { /*...*/ }, itt a skill_line_hovered osztály az új), majd ezt az osztályt hozzáadod JavaScripttel, ettől elindul az animáció, majd leveszed az osztályt, amikor azt szeretnéd, hogy visszacsússzon eredeti állapotába.
Tessék:
https://jsfiddle.net/8ndwnb2b/1/Amúgy volt egy csöpp hiba a CSS-kódodban:
-webkit-transition: width 2s;
For Safari 3.1 to 6.0 -ms-transition: width 2s;
Ez a For Safari 3.1 to 6.0 nyilván komment akart lenni, de nem működő kód lett belőle.
Az eredeti JS-kódban a scrollozással kapcsolatos résznek meg nem sok értelme volt.
(#4924) D4nY:
Itt van egy nagyon egyszerű dialógusablakot felpattintó kód a jQuery UI felhasználásával:
http://jqueryui.com/dialog/#modal-confirmation
Ha elakadsz, segítünk.
-
Aureal
őstag
Nem értem, mi a célod? A tömb különböző indexein lévő stringeket szeretnél összefűzni?
Nem a cél a lényeg hanem a kérdés szerintem
, de akkor leírom...Van egy tömböm, pl.: [alma, körte, szilva, meggy] és nem a teljes tömböt akarom kiíratni, hanem csak meghatározott elemeit, de azokat egyszerre! Pl. minden páratlan v. páros számút v. tök mindegy pl. a gömbszerű tulajdonságú gyümölcsöket stb. Vagy itt külön változókba emeljem inkább a tömb elemeit és azzal már szabadon tudok sakkozni? De akkor mi értelme a tömbnek?
-
daninet
veterán
Van ez a rész:
jQuery.colorbox({
overlayClose: true,
opacity: 0.5,
width: '600px',
height: '150px',
href: false,
html: json['success']['message']
});egyszerűen ezutánra dobd be ezt:
window.setTimeout(function () {
jQuery.colorbox.close(); // rövidebben: $.colorbox.close(); (de a konzisztencia kedvéért maradt ez is jQuery-vel kezdődő)
}, 3000);Ez így működni is fog.

Korábbi bedobott kódot átalakítva: http://jsfiddle.net/eyza6aw8/1/nagyon köszönöm

-
daninet
veterán
Pedig műxik az: http://jsfiddle.net/eyza6aw8/
Szóval ennyi alapján nehéz lesz kitalálni, nálad miért nem működik...
Megtaláltam hova kellene begyógyítani ez a sort, de az elégtelennél is kevesebb ismeretemmel nem tom megoldani.
[link]
Egy kis segítséget megköszönnék
-
adam_
senior tag
"cookiesokkal"
Ez picit furán hangzik.
Az egyesszám a cookie. Akkor már cookie-kkal. 
Nem tudnád ezt a kódot úgy mellékelni, hogy a gomboknak legyen már felirata, a képek helyén meg legyen ott valami kitöltő kép?

Kitöltő képek:
http://lorempixel.com/
http://placehold.it/
stb.A gombok meg legyenek ellátva valami segítő szöveggel például az accessibility miatt. Például egy keresőrobot vagy egy screenreader sem igazán tud mit kezdeni az üres értékekkel ellátott gombjaiddal.
Aztán ezeket a korábbi tanácsokat megfogadhatnád (tele van ezekkel a hibákkal a kódod, most még több ilyen jellegű hibával is, mint korábban, amire írtam ezeket), plusz ami a mostani kódodban még extraként nagyon gáz, hogy tele van okádva a kódod ilyenekkel:<script>
$('#zoom_01').elevateZoom({
easing: true
});
</script>
......
<script>
$('#zoom_02').elevateZoom({
easing: true
});
</script>
......(A pontok helyén folytatódik a kód.)
Ez iszonyatosan béna, pont arra találták ki az osztályokat és a selectorokat, hogy általánosan lehessen hivatkozni alapvetően azonos jellemzőkkel bíró elemekre.Ennek a függvényednek nem sok értelmét látom:
function entfernCookie() {
document.cookie = "cookiesEuro=" + cookiesEuro;
"path=/; expires= 0";
document.cookie = "cookiesChocMenge=" + cookiesChocmenge;
"path=/; expires= 0";
document.cookie = "cookiesLieferung=" + cookiesLieferung;
"path=/; expires= 0";
alert("Sie haben alle Cookies erfolgreich gegessen! :)\nSie können es mit Cookies-Status-Button kontrollieren.")
}Az "entfernen" tudtommal azt jelenti, hogy eltávolítani, akkor itt miért is adsz háromszor is tök különböző értéket a document.cookie-nak?
Aztán az objektumos résznél:
var cookies = {
.........
cookies : document.cookie,
.........
entfernCookie : function () {
cookies.document.cookie = "cookiesEuro=" + cookies.cookiesEuro ; "path=/; expires= 0";
cookies.document.cookie = "cookiesChocMenge=" + cookies.cookiesChocmenge ; "path=/; expires= 0";
cookies.document.cookie = "cookiesLieferung=" + cookies.cookiesLieferung ; "path=/; expires= 0";
},
...............Ennek a cookies.document.cookie-nak semmi értelme, ne csodálkozz, hogy ez nem is működik.
"Viszont nekem most perpill németbe kell ezt megírnom a beadandóm miatt"
Lehetne a kurzus nyelve akár szuahéli is, tök mindegy, a programozás nyelve az angol.
A kommentjeid akár lehetnek azon a nyelven, amit preferálsz (bár a nemzetközi csapatmunkát ez is nehezíti - nem kell igazán komoly projektekre sem gondolni, elég egy GitHubon megosztott open source projektecske, amit a nagyközönség elé társz), de a változóneveknek, attribútumértékeknek, id-knak, egyebeknek angol nyelven kellene szerepelniük. Csak jótanács. 
(#4875):
"nem szeretnék más editort használni, mert nagyon megszerettem már a Notepadet"
Majd rájössz.
Köszönöm szépen a tanácsokat!

Egy másik kérdés: Azt mivel lehet megoldani, ha pl. kicsinyítem a böngésző méretét, tegyük fel, hogy pl. csak tablet nézetnél aktíválódik egy JQuery. Pl. hasonlóképp mint itt a jobb felső sarokban a menü? Szintén waypointssal?

-
daninet
veterán
Pedig műxik az: http://jsfiddle.net/eyza6aw8/
Szóval ennyi alapján nehéz lesz kitalálni, nálad miért nem működik...
ejj mindig ezek a problémák

akkor túrom még kicsit a kódot
-
Jim-Y
veterán
"cookiesokkal"
Ez picit furán hangzik.
Az egyesszám a cookie. Akkor már cookie-kkal. 
Nem tudnád ezt a kódot úgy mellékelni, hogy a gomboknak legyen már felirata, a képek helyén meg legyen ott valami kitöltő kép?

Kitöltő képek:
http://lorempixel.com/
http://placehold.it/
stb.A gombok meg legyenek ellátva valami segítő szöveggel például az accessibility miatt. Például egy keresőrobot vagy egy screenreader sem igazán tud mit kezdeni az üres értékekkel ellátott gombjaiddal.
Aztán ezeket a korábbi tanácsokat megfogadhatnád (tele van ezekkel a hibákkal a kódod, most még több ilyen jellegű hibával is, mint korábban, amire írtam ezeket), plusz ami a mostani kódodban még extraként nagyon gáz, hogy tele van okádva a kódod ilyenekkel:<script>
$('#zoom_01').elevateZoom({
easing: true
});
</script>
......
<script>
$('#zoom_02').elevateZoom({
easing: true
});
</script>
......(A pontok helyén folytatódik a kód.)
Ez iszonyatosan béna, pont arra találták ki az osztályokat és a selectorokat, hogy általánosan lehessen hivatkozni alapvetően azonos jellemzőkkel bíró elemekre.Ennek a függvényednek nem sok értelmét látom:
function entfernCookie() {
document.cookie = "cookiesEuro=" + cookiesEuro;
"path=/; expires= 0";
document.cookie = "cookiesChocMenge=" + cookiesChocmenge;
"path=/; expires= 0";
document.cookie = "cookiesLieferung=" + cookiesLieferung;
"path=/; expires= 0";
alert("Sie haben alle Cookies erfolgreich gegessen! :)\nSie können es mit Cookies-Status-Button kontrollieren.")
}Az "entfernen" tudtommal azt jelenti, hogy eltávolítani, akkor itt miért is adsz háromszor is tök különböző értéket a document.cookie-nak?
Aztán az objektumos résznél:
var cookies = {
.........
cookies : document.cookie,
.........
entfernCookie : function () {
cookies.document.cookie = "cookiesEuro=" + cookies.cookiesEuro ; "path=/; expires= 0";
cookies.document.cookie = "cookiesChocMenge=" + cookies.cookiesChocmenge ; "path=/; expires= 0";
cookies.document.cookie = "cookiesLieferung=" + cookies.cookiesLieferung ; "path=/; expires= 0";
},
...............Ennek a cookies.document.cookie-nak semmi értelme, ne csodálkozz, hogy ez nem is működik.
"Viszont nekem most perpill németbe kell ezt megírnom a beadandóm miatt"
Lehetne a kurzus nyelve akár szuahéli is, tök mindegy, a programozás nyelve az angol.
A kommentjeid akár lehetnek azon a nyelven, amit preferálsz (bár a nemzetközi csapatmunkát ez is nehezíti - nem kell igazán komoly projektekre sem gondolni, elég egy GitHubon megosztott open source projektecske, amit a nagyközönség elé társz), de a változóneveknek, attribútumértékeknek, id-knak, egyebeknek angol nyelven kellene szerepelniük. Csak jótanács. 
(#4875):
"nem szeretnék más editort használni, mert nagyon megszerettem már a Notepadet"
Majd rájössz.
+1
Nem is értem -őszintén-, hogy mi visz rá valakit, hogy ne angolul programozzon. Attól még a termék/oldal nyílván lehet német, olasz, vagy akármi. Aki így tesz annak nem tűnik fel, hogy a
function
for
switch
new
..stb
sem németül, olaszul, egyéb nyelven van?
Új hozzászólás Aktív témák
-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Xbox tulajok OFF topicja
- Elemlámpa, zseblámpa
- Konzol Screenshot
- Battlefield 6
- Nem kell még temetni: 2 éves órajelcsúcsot döntöttek meg Raptor Lake-kel
- Projektor topic
- Milyen videókártyát?
- Vicces képek
- Luck Dragon: Asszociációs játék. :)
- További aktív témák...
- 24 magos AMD Threadripper alapú munkára kiváló félgép, 128GB RAM-mal
- HP ZBook Fury 15 G7 i7-10850H 32GB 512GB SSD Quadro T2000 4GB FHD HUN bill, szép állapotban eladó
- Eladó MacBook Pro 16,1 2019 CTO
- új 0 km es garanciás lenovo loq rtx 5050 8gb
- Eladó teljesen újszerű karcmentes Samsung Galaxy Watch Ultra
- Crucial 16GB DDR5 4800MHZ
- Lenovo T470s 14" FHD, i5 6300U, 8GB RAM, 256GB SSD, 2db akku, számla, 6 hó gar
- Kingston 32GB DDR4 3200MHz KSM29ED8/32ME ECC Szerver RAM
- Telefon felvásárlás!! Samsung Galaxy S24/Samsung Galaxy S24+/Samsung Galaxy S24 Ultra
- BESZÁMÍTÁS! 32GB G.Skill Trident Z RGB 3200Mhz DDR4 memória garanciával hibátlan működéssel
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest




Először tényleg angolul kell megtanulnia (ezt Te is írtad), aztán programozói alapszemléletet elsajátítani (nem biztos, hogy JavaScripten keresztül kellene, de fogalmam sincs, mi a leginkább működő módszer, pl. a C nyelv kezdésnek kissé erős lehet, mégis pl. BME-n ezt nyomatják elsőre), majd tök alapvető dolgokkal megismerkedni a JavaScripten belül - pl. épp azt, hogy mi is az a DOM, milyen módon tudja alapszinten manipulálni a HTML-elemeket, stb. Eleinte nem szükséges minden olyan ismeret, ami a pár-/sokéves tapasztalatból neked kapásból előugrik. Legyen némi sikerélménye, amiből tovább építkezhet (ami azt hiszem, nagyon fontos ahhoz, hogy legyen kedve folytatni). Amikor kezdő voltam programozásból, én is azt éreztem, hogy a haladók vagy profik ritkán tudnak csak visszaemlékezni (vagy nem is akarnak) arra, hogy ők honnan is kezdték. Érted, ha elkezdesz tanulni angolul, akkor sem a past perfect continous-zal kezded.
Megy! Köszi!
A kód karbantartását is nehézkesebbnek találtam, pedig nincs gondom a JS ismeretével ilyen szinten.


Persze érthető is, sztem kezdőknek érdemes a picit hosszabb, de beszédesebb formát mutatni, és kevésbé a trükköseket, hogy ráérezzenek az ízére.
) Ezeket közben kijavítottam és while-ra cseréltem a for-t. Ezt sikerült összehozni, ami működőképesnek látszik:




![;]](http://cdn.rios.hu/dl/s/v1.gif)

(just kiddin') Kérdezzzzz, most!!!444NÉGY



