-
IT café
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
-
martonx
veterán
válasz superboyka #4649 üzenetére
Ez most nagyon off lesz, és nagyon paraszt. A hszed nagyon hasznos volt számomra, mert sosem gondoltam volna, hogy ilyen is lakozik bennem, de muszáj kimondanom. Annyira irritálón, borzalmasan bűn rossz a helyesírásod, hogy az első mondat után egyszerűen képtelen voltam érdemben elolvasni, hogy mi a problémád. Ezt tetézted a kóddal, amit nem néztem át, de ránézésre is az a kód volt, amit el se akarok olvasni.
Szóval ezer bocsánat, és tudom, hogy vér paraszt vagyok amiért kimondtam, de te erőltetted, hogy kapj valami reakciótAmikor olvastam a hszedet, akkor értettem meg, hogy testvéremnek miért kell szakmunkásképzőben vállalkozási ismeretek tantárgy fedőnéven matematika alapjait tanítania a végzősöknek (komolyan - téglalap terület, kerület, százalékszámítás a tananyag).
Ha netán 8 éves vagy, és még most tanulsz írni-olvasni, vagy felvidékről, erdélyből, vajdaságból származol (bár szerintem ők is nagyságrendekkel jobban írnak nálad a körülményeik ellenére is), akkor ezer bocsánat, és vedd tárgytalannak az írásomat. Ez esetben, ha normális angolsággal elküldöd privátban, hogy mit is szeretnél, nagyon szívesen segítek.
Én kérek elnézést!
-
superboyka
csendes tag
válasz martonx #4651 üzenetére
eltaláltad erdélyböl vagyok ás román suliba iratak az a baj a helyesirásomal igy bocsi itt van mit akarok
Néztem a scriptet minden irányból, arra jutottam, hogy:
theoccasion1 az egyenlő december 25.
theoccasion2 az egyenlő január 1.
theoccasion3 az egyenlő Január 8
ebből lesz egy olyan képlet, hogy
theoccasion1-today/one_day
ünnepi nap - aktuális nap / ma
* ma = 1 nap = 24 = one_day = 1000*60*60*24;
Akkor ide a 8 a 15 és a 22 hogyan jön ki ebből ?
//dec.18-tól 24-ig
if ((calculatediff1>0) && (calculatediff1<8) && (calculatediff2<15) && (calculatediff3<22))
Így kéne:
calculatediff1 úgy jön ki, hogy dec 25 - dec 18 / ma
calculatediff2 úgy jön ki, hogy jan 1 - dec 18 / ma
calculatediff3 úgy jön ki, hogy jan 8 - dec 18 / ma
Első érték számítása (calculatediff1)
dec 25 = Timestamp = 1419465600
dec 18 = Timestamp = 1418860800
1 nap = Timestamp = 86400000
Van szám, a képletbe betudom helyettesíteni.
Én így gondolkodtam rajt, de nem jó.
Kérem ezek után valaki legyen szives eme okfejtésemet kijavítani, hogy megfelelően tudjam majd kiegészíteni további ünnepi napokkal.
Nem szeretnék más oldalt, más példát, más módszert nézni erre, Én ezt a srciptet szeretném használni.
&& = és
II = vagy
<> = relációs jelÚgy érzem meg van minden ami kell, de a számítási rész nem megy.
Fent leírtam az én gondolatmenetemet, és azt is, hogy mit nem értek.
Valaki legyenszives ezek után igazítson útba a helyes művelet elvégzéséhez.
Több napja foglalkoztat a dolog, ennek ellenére nem jöttem rá.
Köszönöm.itt a link a szétszedet kodal
[ Szerkesztve ]
-
Jim-Y
veterán
válasz superboyka #4652 üzenetére
Ez egy félkész alternatív megoldás, ha valaki egy kicsit tovább csinálja, akkor egyszerűbb, átláthatóbb, és könnyebben módosítható lesz mint a tiéd. Sok időm nem volt vele foglalkozni, meg hát befejezni sem.
megj: azt azért el kell mondanom, hogy itt senkinek sem kötelező segítenie neked. Mindenki a saját szabadidejéből áldoz a témának, tehát ha te egy kész megoldást szeretnél kapni, magyarázattal, és a te megoldásodat kiegészítve, úgy, hogy te nem mutatsz hajlandóságot a próbálkozásokra ... akkor csodálkoznék ha valaki megcsinálná :/
[ Szerkesztve ]
-
superboyka
csendes tag
válasz Sk8erPeter #4655 üzenetére
én is köszönöm annak aki megprobélt segiteni nekem mint az elözö hsz-ban @Jim-Y és még páran megkaptam a számitását a kodnak hogy történik és hogy megmutassam hogy atol miért nem irok helyesen nem azt jelenti hogy hülye vagyok, még nincs teljesen kész de belletettem valemtint és haloovint és jol végzi a js a dolgát ha teljesen kész megosztom velletek is hátha kell vallakinek még. és csak hogy mi volt a kérésem lényege és nem igazán értete meg senki mutattom
var valentin_nap = new Date(parseInt(today.getFullYear()), 01, 22);//datum amikor boldogat kiván
//jan 25.től feb.14-ig
if ( (calculate_valentin>0) && (calculate_valentin<21) )//21 napot számlál ,0 a beirt dátumigtehét oktober 25 töl
{
document.getElementById('unnep').innerHTML = '<br \/><div>Még '+calculate_valentin+' napot alszunk és jön Valentin<\/div>'+
'<br \/><img src="#" alt="" \/><br \/>';
unnep_idoszak = true;
}
//feb.14.-én
if ( (calculate_valentin==0) )
{
document.getElementById('unnep').innerHTML = '<br \/><div>Gyerekek, megérkezett Valentin!<\/div>'+
'<br \/><img src="#" alt="" \/><br \/>';
unnep_idoszak = true;
}
valentin_nap.setMonth(theoccasion1.getMonth()+1);// januártol kezdödik az év onan szémol a +1 februárt jelenti.
szoval a pl és a magyarézat nagyábol ez kellet volna[ Szerkesztve ]
-
martonx
veterán
válasz superboyka #4653 üzenetére
Ez esetben ismét elnézést. Máskor kezdd azzal, hogy erdélyből vagy, és örülsz ha valaki ki tudja bogarászni amit szeretnél, mert akkor rögtön más lesz a hozzáállás, mint ha az ember azt hiszi, hogy jött egy hülyegyerek, aki nem hogy kódolni, de még írni se tud. De mondom engem az se zavar, ha angolul teszed fel a kérdést, ha az jobban megy, mint a magyar.
Én kérek elnézést!
-
^Boss
őstag
sziasztok!
valaki tudna egyszerű tutorialt az alábbiakra?
-jobb gombra lenyíló menü néhány elemmel, esetleg kis ikonokkal a szöveg előtt
-táblázat első oszlopába kellene feltétel szerint kis favicont betennitudom, túl specifikus a dolog, és ilyen tutorial úgysem lesz, de egy alap tut + egy kis kiegészítő segítséggel is sokra mennék.
előre is köszönöm mindenkinek!
-
martonx
veterán
A jobb gombra menüt én a helyedben nem erőltetném, weben nagyon idegenül hat, ha a böngészők saját menüjét direktben felülba....od.
Ehhez tutorial? Csinálsz egy táblázatot és beleteszed amit akarsz (mit értesz feltétel alatt? szerver oldalról vagy belerendereled feltétel szerint, vagy kliens oldalon js-el rakod bele), hol kell ehhez tutorial?Én kérek elnézést!
-
Sk8erPeter
nagyúr
válasz martonx #4660 üzenetére
A jobbklikkes menü felülkúrása mondjuk egy komplexebb szolgáltatásnál, mint pl. a Google Docs, megbocsátható, sőt, elősegít(het)i a hatékony működést, de amúgy természetesen egyetértek, csak nagyon indokolt esetben szabad ilyet (lásd a Flash-es szutykokat, na ott az esetek 95%-ában csak szimplán idegesítő), különben a felhasználó a webfejlesztő felmenőit nagyon hevesen fogja szidni.
(#4659) ^Boss: sztem nem favicont akartál írni, az más, pl. a böngésző adott fülén látható pici kép.
[ Szerkesztve ]
Sk8erPeter
-
superboyka
csendes tag
válasz Cathfaern #4658 üzenetére
semi gond csak 1 jó tanács ne az elsöre itélj meg 1 embert és a kodoláshoz értegetek csak a js nem megy1 hszt omba irtam a html és a php megy hisz honlapom van amibe témát mindent én csináltam na mind1 nem veszekedni akarok csak roszul esset a hozáálása egyeseknek
[ Szerkesztve ]
-
Jim-Y
veterán
Szia, kevéssé világos ennyiből, hogy pontosan mit szeretnél elérni, de használhatsz egy modulra/függvényre globális jelölőt (flaget) amit akkor billentesz át, ha minden betöltődött.
Egy másik megközelítés, vagy a fenti megközelítés kiterjesztése, ha reaktívan gondolkozol. Ez nagyjából azt jelentené, hogy akik/amik érdekeltek az összes kép betöltődésében, azok beregisztrálnak egy callbacket például az "összes kép betöltődött" eseményre. Ebben az a jó, hogy az a modul amelyik a betöltést végzi csak gyengén lesz csatolva azokhoz amelyek a betöltődést figyelik.
Vagy használhatod az "alap" megoldást, és callbackeket hívsz meg ha az összes kép betöltődött.
Ezeket itt szemléltetem. http://jsfiddle.net/ygvvs0sm/
Egyiket sem próbáltam ki, így kezeld őket pseudokódokként. üdv
-
félisten
Köszi!
Amit szeretnék, az a következő:
Van X darab kép. Ezeket szeretném a méretük szerint elrendezni.
A rendező kód akor futna le, amikor az összes kép betöltődött, ezáltal tudjuk már a dimenzióit.Utána nézek a callback-es megoldásnak és a flag-nek is.
Viszont a flag-es megoldás miben különbözik attól, amit én csináltam, vagyis egy globális változó tárolja azt, hogy melyik kép van betöltve?Eladó régi hardverek: https://hardverapro.hu/apro/sok_regi_kutyu/friss.html
-
martonx
veterán
"A rendező kód akor futna le, amikor az összes kép betöltődött, ezáltal tudjuk már a dimenzióit."
Ezen elgondolkoztam, hogy biztos ez a jó megoldás? Miért nem küldöd ki első körben a képek dimenzióit, url-jét, majd azt beillesztve a megfelelő helyekre, szépen lejönnének a képek, mindegyik pont a helyére.Én kérek elnézést!
-
adam_
senior tag
Codecademy-n csinálom a JS kurzust, de sajnos az egyik feladatnál most elakadtam, ide belinkelem magát a feladatot is és a JS kódot is: [link]. JS-ben nincs hiba, de valamiért a linkelt oldalon írt hibaüzenettel ("It looks like sleepCheck() isn't returning") nem enged tovább. Mit gondoltok?
[ Szerkesztve ]
-
Jim-Y
veterán
Szerintem csak elírtad a visszatérő üzenetet, ezt már én is megcsináltam még korábban, és vissza tudtam keresni a kódot:
// Write your function below.
// Don't forget to call your function!
function sleepCheck( numHours ) {
if ( numHours >= 8 ) {
return "You're getting plenty of sleep! Maybe even too much!";
}
else {
return "Get some more shut eye!";
}
}
sleepCheck(10);
sleepCheck(5);
sleepCheck(8);FYI: ez egy kisebb anti pattern, ha minél jobb stílusban akarnánk megcsinálni a feladatot akkor csak egy darab return statement lenne a függvényben. http://jsfiddle.net/fgexxnjo/2/ Megjegyzem, ez nem mindig lehetséges, de törekedni kell rá.
[ Szerkesztve ]
-
Sk8erPeter
nagyúr
Azt írtad, hogy
return "You're getting plenty of sleep! Maybe even too much!";
a
return "You're getting plenty of sleep! Maybe even too much!";
helyett, szóval sztem annyi a para, hogy beleraktál csomó szóközt a stringbe.Szerk.:
(#4668) Jim-Y:
Mármint már önmagában az az anti-pattern, hogy több return is van a függvényben? Sokszor ezek az úgynevezett nagy patternek, illetve anti-patternek szimplán bullshitek. Ez egy jó hülye kitaláció, hogy nem lehet több return egy függvényen/metóduson belül.
Lehet simán olyan függvény/metódus, amiben tök szépen lerövidíti a kódot, hogy egy bizonyos feltétel teljesülése esetén azonnal visszatérsz, és még csak nem is írsz else-ágat, mert nyilván ha nem tért vissza, akkor az else-ágnak minősül (és ez most nem valami alacsonyszintű kód ugye, nem b@szakszunk ilyenekkel), és így megspórolsz egy hatalmas nagy beljebbtolt else-blokkot.Példa pszeudokóddal:
function bullshit(){
if(foo) {
stuff = false;
}
else {
....
....
....
....
....
....
stuff = true;
}
return stuff;
}VAGY:
function bullshit(){
if(foo) {
return false;
}
....
....
....
....
....
....
return true;
}[ Szerkesztve ]
Sk8erPeter
-
Jim-Y
veterán
válasz Sk8erPeter #4669 üzenetére
Nem, igazából ennek van értelme, bár, ja, kérdéses, hogy mennyi. Leginkább az lenne az értelme annak, hogy egy függvénynek csak egy kilépési pontja legyen, hogy jobban átlátható lesz tőle a függvény. A fejlesztő kognitív terheltsége csökken tőle. http://en.wikipedia.org/wiki/Cognitive_load
Én hiszek abban, hogy az ilyen apró dolgok tesznek egy fejlesztőt jó fejlesztővé. Most nem azt mondom, hogy pont ez. De ha valaki figyel arra, hogy a kódja egyszerű legyen, egyszerűen olvasható legyen, az tesz valakit igazán jóvá.
De amúgy igen, sokszor bullshit áll mögöttük, vagy csak vallási kérdésLehet simán olyan függvény, amiben tök szépen lerövidíti a kódot, hogy egy bizonyos feltétel teljesülése esetén azonnal visszatérsz
Így van, pont ezért írtam, hogy nem mindig lehetséges egy visszatérési pontot írni. Node környezetben ez elég gyakran előfordul. Az IDE mindig szól is érte btw .. nem mintha EZ számítana ^^ ..
[ Szerkesztve ]
-
Sk8erPeter
nagyúr
Szerkesztettem közben a hsz.-t egyszerű példakóddal, kukkants rá.
"jobban átlátható lesz tőle a függvény"
Na ez az említett esetben pont nem igaz. Lesz egy bazinagy beljebb tolt else-blokkod, igazából tök értelmetlen, le lehetne rövidíteni, adott feltétel esetén azonnal visszatérhetnél a függvényből, és már ránézésre, kapásból lehetne tudni, hogy annál a pontnál tényleg eldőlt, hogy a kapott adatokkal vagy a környezet adott állása szerint nincs értelme tovább tartózkodni abban a függvényben.Szerintem egy fejlesztőt az tesz igazán jóvá, ha el tudja dönteni, adott kódrészletnél mi lenne az a megoldás, ami valóban áttekinthetővé teszi a kódot: kényszeresen erőlködik, hogy alkalmazzon egy patternt, mert azt mondták, hogy az bizonyos kontextusban igenis hasznos lehet, vagy pedig felfedezi, hogy adott esetre pont nem kell mindenáron ráhúzni.
Sok minta nagyon hasznos, ez is adott kontextusban az tud lenni, de itt sem lehet fekete-fehérre leegyszerűsített általánosságokat kijelenteni.Sk8erPeter
-
^Boss
őstag
srácok, ha van egy function a dblclick eventen, akkor másikat nem fog tudni felfodni a js?! próbálok egy lenyíló mappás, fájlböngészős dolgot úgy kiegészíteni, hogy a duplaklikk az eddigiek szerint lenyissa a tree kiválasztott elemét, DE emellé most jönne az, hogy az egész tree-től függetlenül kiíratom az elemeket egy table-be is, egy másik divbe.
de csak akkor megy az egyik, ha a másik nincs használva, pedig én együtt szeretném.
megoldható?!kieg: nem egy helyen van a két hívás, az egyik mehet akár rögtön a div tag-be, míg a másik egy teljesen másik helyről, futásidőben keletkezik
[ Szerkesztve ]
-
Jim-Y
veterán
válasz Sk8erPeter #4669 üzenetére
A szekesztésedre: kicsit szerencsétlen a példád, mert ez így stilisztikailag sem szerencsés, de csak a boolean-ek miatt. Belémverték, hogy ha ilyet írnék le, hogy
if (smtg) {
return true;
} else {
return false;
}Az szentségtörés Helyette:
return smtg;
vagy
return !!smtg;
vagy
return Boolean(smtg);
vagy bármi, csak ne a felső DRY ugyebár..
Egy jobb példa, amire te is gondoltál, lehetne a node style programming. Ahol a callbackek mindig function(err, result) alakúak.
Például egy mongodb query method nagyszerű példa erre (pszeudo):
function queryUsers(res, req, next) {
Users.findAll({}, function(err, users) {
if (err) {
return next(new InternalError('..'));
}
res.send(users);
});
}Amúgy szerintem ugyanúgy gondoljuk a dolgokat, szóval ez inkább chit-chat, mint veszekedés.
[ Szerkesztve ]
-
^Boss
őstag
na kicsúsztam a limitből
közben annyit kiderítettem, hogy a fájltree egyes elemein nem megy csak a dolog, ha a semmibe kattintok e filetree boxon belül, akkor oké. tehát ha valami linkelve van, ott van gond. van valami ötletetek? köszönet[ Szerkesztve ]
-
Sk8erPeter
nagyúr
"Amúgy szerintem ugyanúgy gondoljuk a dolgokat, szóval ez inkább chit-chat, mint veszekedés. "
Mindig le vagyok döbbenve, hogy emberek mit tudnak "veszekedésnek" tekinteni. (Most nem rólad beszélek, mert te is inkább chit-chatnek látod, de attól még van ez a jelenség. ) Épp ezért van talán, hogy több szakmai topicban is cseszegetésnek veszi egy csomó ember (most inkább nem említenék példákat, annyit segítek, hogy a Weblapkészítés topicban volt mostanság), és azonnal megsértődnek, ha elkezdünk velük vitatkozni, mert mi picit másképp látjuk a dolgokat, pedig ezekből a beszélgetésekből kisülhet valami hasznos is. Most is szerintem csak dumálunk, konstruktívan vitatkozunk, bennem fel sem merült egy pillanatig sem a "veszekedés" gondolata sem.Viszont ha már "szerencsétlennek" minősíted a példámat, akkor legalább figyelj oda, hogy mi van odaírva. Egyrészt az, hogy pszeudokód, másrészt pont rossz a "ha ilyet írnék le" rész után írt példád (mondhatnám, szerencsétlen ), mert pont nem azt a példát mutattam, hanem az értékátadósat: tehát az ELSŐ példánál EGYSZER van visszatérés, így a nálad írt egyszeri return smtg-nek felel meg. Az, hogy most booleannel vagy mivel térek vissza, az azt hiszem, egy pszeudokódnál kb. qrva mindegy, főleg, hogy az nem kell, hogy JavaScript-kódnak feleljen meg (akkor helyettesítsd be más nyelvvel, és jó lesz a példa) - itt a helyzet érzékeltetése volt a lényeg, nem gondoltam, hogy ezen a szinten kerül kielemezésre a kód...
A második példának meg pontosan az a lényege, hogy TÖBB return is van: azonnal visszatérek a függvényből, amint jól látható, hogy abban a függvényben már nincs több dolgom, mert pl. valami alapvető feltétel nem teljesül - akkor minek egy óriási indentált else-blokkot fenntartani még, és a return szócskát majd csak AZUTÁN kiírni, miután az a blokk is végre befejeződött, csak azért, hogy a return szócska ne szerepeljen még egyszer, meg azért, mert valami bácsi vagy néni azt mondta, hogy lehetőleg egy darab kilépési pont legyen?
Remélem, érthető. És a korábbi példát továbbra is tartom, mert a lényeget kifejezi, és mivel pszeudokód, nem kell feltétlenül JavaScriptnek, és az itt jellemző booleannel kapcsolatos szabályoknak megfeleltetni, ne csak egy nyelvben gondolkozz.
Ja, várj, még egy: most hogy jön ide a DRY? Azért, mert még egyszer le van írva a return szócska? Ne már...
Meg még a példád kapcsán az jutott eszembe, hogy ilyen alapon az is antipattern, mivel hiba esetén visszatérsz, de ha nincs hiba, akkor nem térsz vissza semmivel, ahogy említetted is, szól is érte az IDE...Sk8erPeter
-
Sk8erPeter
nagyúr
-
^Boss
őstag
válasz Sk8erPeter #4677 üzenetére
elnézést. megpróbálok nekifutni újra. jsfiddlet ebben az esetben nem igazán érné meg összerakni, mert ott természetesen megy, más gond lesz. az egész kódot meg nem szeretném bemásolni, de ezúttal pontosabban fogalmazok.
tehát van egy fileTree mappákat, fájlokat faként ábrázoló cucc. annyit tud, hogyha dupla kattintás van egy mappán, belelép, ha egy másikon kattintunk ismét duplán, akkor bezárja a régit, kinyitja az aktuálisat.
ez egy webről beszerzett félkész megoldás továbbfejlesztése.namost ez egy divben van (fileTree id-vel) elhelyezve.
mellette egy másik divben egy table található, amibe a mappák, fájlok kerülnek, immár attribútumokkal is ellátva, soronként.ami megy: filetree teljesen, de a jobb oldalon lévő részletes nézet egy "frissítés" gombbal frissül csak. ez a probléma, azt szeretném, ha a fileTree egyik listaelemén (ezek vannak benne) kettőt kattintva nem csak betöltené magának a mappa tartalmát, de egyben frissülne a táblám is.
a nehézség, hogy ez egy "behúzott" js fájl, connector scripttel, nem egy aspx-ben van minden, így hiába írnám át a fileTree js fájlát arra, hogy ugyan az én ShowDetails() functionomet futtassa le, ami frissíteni a táblát, nyilván azt sem tudja, miről van szó.
próbálkoztam már a div-re magára ondblclick-re rárakni a ShowDetails()-t, de nem igazán szereti egészen addig, amíg át nem konfigolom a fileTree-t úgy, hogy ne dupla, hanem sima kattra hozza be a mappa tartalmát.
azaz az jött le, hogy 2db dblclick-et nem szeret, vagy az egyik felülírja a másikat. franc tudja. nem vagyok nagyonotthon a javascriptben.
ha valami nem 100%-osan érthető, bármikor "javítom" a leírást utólag
van valami ötletetek? -
Cathfaern
nagyúr
válasz superboyka #4662 üzenetére
Pont azért írtam, hogy ránéztem adatlapodra, mert először én is írni akartam, hogy kicsit nehezen értelmezhető amit írsz, de eszembe jutott, hogy nem biztos hogy magyar környezetben nőttél fel. El tudom képzelni, hogy milyen nehéz lehet úgy megtanulni magyarul, hogy a társadalom nem igazán segíti ezt elő. Szóval max respect, hogy ennek ellenére is próbálkozol vele, és hogy magyar fórumra írsz
-
^Boss
őstag
közben annyit változott a dolog, hogy ha a fileTree-beli mappa katt nem doubleclick, csak sima click, akkor megy a doubleclickre a table frissítése.
de így ugye kissé igénytelen. olyan mód kéne, hogy lefusson a doubleclickre mindkét function, úgy, hogy nem tudom egy helyen megadni sorban, hogy fusson le az első és a második. valamiféle function append/delegate nincs esetleg? -
Jim-Y
veterán
Így kód nélkül ezt elég nehéz megmondani. Egyébként tippre az első dblclick esemény kezelője megállítja a propagation-t.
Event bubbling, Event delegation, Event capturing. Ezek mondanak valamit? Csak mert ezekkel kéne tisztában lenned ahhoz, hogy megoldd a feladatot.
Úgy is megoldhatod, hogy ugyanabban a handlerben kezeled le mindkét funkciót.
megj: és hidd el, ahhoz, hogy segíteni tudjunk, ebben az esetben egy jó leírásnál több kell. Például egy jsfiddle példa jól jönne. Valószínűleg onnantól sima liba lenne segíteni.
[ Szerkesztve ]
-
adam_
senior tag
Feladat és leírás itt. Előre is köszönöm az észrevételeket.
Az oktatóprogi céloz is rá, hogy van rá megoldás, de sajnos nem találtam meg.
Think about how you might fine-tune this program to make sure it only finds exact matches for your name. Search the Internet to see if there are any built-in JavaScript string methods that can help!
[ Szerkesztve ]
-
Jim-Y
veterán
hits.join('')
szerk:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String
string.match, string.substr, string.indexOf, string.search, RegExp..stb[ Szerkesztve ]
-
Zedz
addikt
Sziasztok,
Kicsit jobban belemélyedtem az OOP JS használatába, azonban felmerült bennem egy kérdés. Ti használtatok már constructor objectet? Ha jól értem ezt szokták akkor használni, hogyha valamiből több példányra van szükségünk. Tudtok erre mondani valami példát? Mert ahogy így belegondoltam majdnem mindenre elég a sima object literal.
-
Jim-Y
veterán
Pedig sok helyen használják őket, csak lehet te még nem találkoztál velük, magadtól írni pedig valószínűleg még annyira sem.
A JavaScriptet nem csak honlapfejlesztésre használják. A tapasztalaton szerint ha valaki eddig csak a webfejlesztéssel került kapcsolatba akkor elképzelhető, bár érdekes, hogy nem látott még ilyenre példát. De más területeken, ahol JS-t használnak sűrűn elő szokott fordulni. Mondok pár példát:
- Grafika/Játékok: canvas, például kell csinálnod egy Pont osztályt. Vagy egy lövedék osztályt, vagy bármit. Sűrűn előfordul.
- IoT/Nodebots: Johnny-Five | Led class
- jQuery: maga a jQuery is csak egy osztály egy objektuma https://github.com/jquery/jquery/blob/master/src/core.js#L23
- A Promis libek is használják, stb.. QEnnél jobb példák, amik nem az ilyen alap tutorial szintű példák most nem jutnak eszembe
[ Szerkesztve ]
-
Sk8erPeter
nagyúr
"ahogy így belegondoltam majdnem mindenre elég a sima object literal"
Dehogy elég. Az object literal pont egy elég rossz példa volt. Például kapásból ha értelmesen szeretnél több példányt létrehozni klónozások, meg mindenféle baromkodások nélkül, akkor máris korlátokba ütköztél. Mi engedett arra a következtetésre jutni, hogy "majdnem mindenre elég"?Az előző lapon amúgy rengeteg szó volt az objektumorientált dolgokkal kapcsolatos témákról, kb. ezt a tartományt nézd (na meg nyilván az összefoglalót):
http://prohardver.hu/tema/javascript_topic/hsz_4404-4560.htmlSk8erPeter
-
Zedz
addikt
Húú igen, elfelejtettem megjegyezni, hogy kifejezetten weboldal készítésre gondoltam. Nemrég használtam egy JS-es galéria nézegetőt, megnéztem a kódját és ott is contructor objectet használ az illető.
jQuerynél miért kell azt példányosítani? Pl. nem lenne elég egy object literál függvényeit használni?
(#4691) Sk8erPeter Írni akarok egy olyan eszköztárat, amit a jövőben több oldalnál is fel tudok használni. Mondjuk ha csak validálni akarok egy formot, akkor mondjuk meghívom az app.validator-t, átadom a megfelelő értékeket és végzi a dolgát. És itt merült fel bennem a kérdés, hogy az "egyszerűbb" weboldalaknál miért kellene nekem constructor objektumot írnom? Pedig ahogy elnézem a frameworkök, előre megírt pluginok is ezt preferálják.
-
Sk8erPeter
nagyúr
Na várj, a kérdéseidből ítélve úgy látom, hogy az objektumorientáltságnak az alapjaival sem vagy még (eléggé) tisztában, szóval jobban utána kéne olvasnod az OOP-nek (meg annak, hogy mondjuk miért jó, ha valamiből több példányod is lehet), most végül is mindegy, melyik nyelven, bár az is igaz, hogy erre pont nem a JavaScriptet tartanám a legjobb nyelvnek...
Egyébként amiről te beszélsz, az kb. annak felel meg, hogy van egy osztályod, statikus attribútumokkal és metódusokkal, amiket példányosítás nélkül meg tudsz hívni, és babrálsz velük.
Ezekre is bőven van példa magában a JavaScriptben is. De ha több különálló példányt is szeretnél létrehozni, mert azokat külön szeretnéd kezelni, akkor ez már nem elég."jQuerynél miért kell azt példányosítani?"
A példányosításnak semmi köze nincs a jQuery-hez. Erre is a válasz az, hogy nézz utána, miért jó bármiből is több példányt létrehozni.Sk8erPeter
-
^Boss
őstag
Sziasztok!
összetettebb kérdés:
volna egy futás közben ajax-szal frissülő oldal. a probléma a következő:
ami még betöltés elején, egyből megjelenik table, az külön van a hozzá appendelt table elemektől.
példa:
betöltéskor: <table> <tr> ...... </tr> </table> <- ez lesz betöltés után, pedig én azt szeretném, hogy ne zárja le a table-t, vagyis hogy legalább frissítéskor ez olyan formában legyen, hogy a ...-be kerüljön BELÜLRE az új adatsor. jelenleg a /table tag után jön, újranyitott <table> tag nélkül, <tr> tag-ek közt. megoldható ez valahogy?másik:
szeretnék a table sorainak aktuális indexével számolni. hogyan tudom ezt lekérni úgy, hogy annak a tr-nek a sorszámát adja meg egy adott osztályon belül (ne az összes tr-t nézze, csak egy bizonyos osztályba tartozóak (class="xxx")), amelyikre korábban rákattintva egy custom jobb gombos menü jött be? (ilyenkor ha a custom menüben elmegyek afölül az elem fölül, akkor változik az érték, vagy mivel nincs focusban a lap, ezért ezzel nem kell foglalkoznom, és ahol zajlott a katt, az marad az érték?)köszi
-
nova001
senior tag
hello
van egy kis problémám
használok egy oldalon scriptet ami betöltene egy topmenu.html-t, de persze chromeba nem jo, csak firefoxba engedi local filet meghivni. kérdésem hogy valahogy nem lehet megkerülni ezt a xmlhttprequest dolgot??
jasmine jquery nem jó erre ?csatolok pár képet a hibárol
http://kepfeltoltes.hu/141214/1230236937b_www.kepfeltoltes.hu_.png
http://kepfeltoltes.hu/view/141214/a_www.kepfeltoltes.hu_.png[ Szerkesztve ]
-
dqdb
nagyúr
válasz nova001 #4696 üzenetére
A megoldás egyszerű: felülírod az oldalon a beépített XMLHttpRequest objektumot, legalábbis annak a send() metódusát. Itt van rá egy példa, de léteznek XHR mockup könyvtárak is, ahogyan az általad is említett jasmine-ajax is alkalmas lehet erre.
De ha ennyire offline kell működnie az oldalnak, akkor miért a jquery.com-ról töltöd be a jQuery-t, és nem helyi fájlból?
tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek
-
Sk8erPeter
nagyúr
1. Nyilván megoldható, de honnan kéne tudnunk, jelenleg milyen megoldást használsz, mit kapsz szerveroldalról, stb., hogyan korrigáljuk a hibádat az általad alkalmazott módszer ismerete nélkül?
2. document.querySelectorAll használatával tudsz selectorra szűrni (tehát ehhez nem kell jQuery sem), aztán kikeresed a megfelelő elem indexét a tömbből, például - mostani agyi állapotomban rövid idő alatt ennyire tellett -:
http://jsfiddle.net/ssdptwtb/
(Jim-Y: vigyázz, anti-pattern, mert két darab return is van a függvényben, jujjujj. Aztán még biztos találsz más antipatternt is. )BTW jQuery-vel, a .index() használatával ez picit rövidebb.
Sk8erPeter
-
^Boss
őstag
válasz Sk8erPeter #4699 üzenetére
function OnSuccess(response) {
$("#cel").empty();
$("#cel").append("<table id=\"my_table\"> <tbody> <tr class=\"path\"><td colspan=\"6\">elérési út: "+response.Path);
$("#cel").append("<tr class=\"title\"><td>Név</td><td>Létrehozás</td><td>Módosítás</td><td>Tulajdonos</td><td>Verzió</td><td>Méret</td></tr>");
$.each(response.Properties, function (index, prop) {
var txt = [
"<tr class=\"data\"><td>",
prop.Name,
"</td> <td>",
prop.CreationDate,
"</td> <td>",
..........
"</td></tr>"
];
$("#cel").append(txt.join(''));
});
$("#cel").append(" </tbody></table>");
}
</script>ez a kód olyat produkál, hogy az első rész utániak már a táblán kívül keletkeznek:
<table id="my_table">
<tbody>
<tr class="path">
<td colspan="6"></td>
</tr>
</tbody>
</table>
<tr class="title"></tr>
<tr class="data"></tr>
<tr class="data"></tr>ez lenne a probléma. valószínűleg ezért van egy fehér helyköz a tábla első sora, és a többi sora között, valamint a colspan sem működik, nyilván ezért.
ötletek?a másodikat köszönöm szépen, ezalapján menni fog a mouseover-rel is
[ Szerkesztve ]
Új hozzászólás Aktív témák
- Eladatnák az Ubisoftot
- Modding és elektronikai kérdések
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Unknown 9: Awakening - Amit a játékról tudni érdemes
- "A homoszexualitás természetellenes" 😠
- Ukrajnai háború
- Egy vagy két tápkonnektor lesz az új csúcs-GeForce-on?
- Fejhallgató erősítő és DAC topik
- Újabb kedvcsinálón a The Last of Us TV sorozat második szezonja
- VoLTE/VoWiFi
- További aktív témák...
- Tyű-ha Lenovo Thinkpad T14s G2 Üzleti "Golyóálló" Laptop 14" -50% i5-1135G7 4Mag 16GB /256GB FHD IPS
- Gigabyte Ryzen Gaming PC: RTX 2060 Super 8Gb / 16Gb Ram / 512Gb SSD
- LENOVO LEGION GO 83E10032HV + INGYEN futár
- HP Pavilion x360 14-dy Érintős hajtogatós Laptop Tab 14" -35% i5-1135G7 16/512 FHD IPS
- Bomba ár! Dell Latitude 5501 - i7-9850H I 32GB I 512SSD I Nvidia I 15,6" FHD Touch I Cam I W11 I Gar
Állásajánlatok
Cég: Ozeki Kft
Város: Debrecen
Cég: Ozeki Kft
Város: Debrecen