- Geri Bátyó: B550 szűk keresztmetszet, de mi és miért?
- Luck Dragon: Asszociációs játék. :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Fűzzük össze a szavakat :)
- gban: Ingyen kellene, de tegnapra
- sziku69: Szólánc.
- hcl: Kelj fel komám, ne aludjál
- bambano: Bambanő háza tája
- Gurulunk, WAZE?!
- Szoszo94: Xiaomi Mi Router 3G - Padavanra fel!
-
LOGOUT
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
-
cattus
addikt
válasz
lanszelot #10321 üzenetére
Próbáld meg az itt leírt módszert.
function delay(ms) { return new Promise(res => setTimeout(res, ms)); }
async function task(el) {
el.open = true;
await delay(1000);
el.open = false;
}
const details = Array.from(document.getElementsByTagName("details"));
async function run() {
for (let i = 0; i < details.length; i++) {
await task(details[i])
}
}
run();Ahogy olvastam, forEach használatával nem fog menni amit szeretnél, mert annak a callback függvényében nem lehet await-et használni blockingra.
-
cattus
addikt
válasz
Carasc0 #10224 üzenetére
Minden egyes gomb kattintáskor újragenerálod a uniqueNumbers-et, a selectedNumbers-t viszont nem.
Tombolánál szerintem úgy kéne működnie, hogy egyszer legenerálod a random tömbödet az elején, majd utána csak kiveszel belőle számokat (és opcionálisan átrakod egy másikba).
-
cattus
addikt
válasz
magortaltos #9763 üzenetére
Na pont az ilyen példakódok miatt gyújtanám fel a w3schools-t.
-
cattus
addikt
válasz
magortaltos #9731 üzenetére
fetch API-val küldesz egy post request-et
-
cattus
addikt
válasz
lanszelot #9525 üzenetére
Kicsit gondolkoztam rajta, nekem a következő jutott eszembe: sorbarendezed mindkét tömböt és az elejéről indulsz két indexszel (i indexeli az A tömböt, j meg a B tömböt). Ha A != B[j], akkor mindkét indexet növeled. Ha A(i) == B[j], akkor növeled a számlálót és megnézed A[i + 1]-et és B[j + 1]-et. Ha ezek is egyeznek A(i)-vel vagy B[j]-vel, akkor növeled i-t és j-t is. Ha csak az egyik egyezik (mondjuk A[i + 1] már más, de B[j + 1] még nem), akkor i-t addig növeled, amíg ráfutsz a következő számra, j-t meg csak 1-gyel, és jöhet elölről az egész, amíg i vagy j el nem éri a tömb végét. Nem csináltam rá kódot, szóval lehet valami edge case-t kihagytam, de én így indulnék neki.
-
cattus
addikt
válasz
laracroft #9122 üzenetére
1. Amit megadsz callback a duplikálás check esetében, azt a függvényt ugyanúgy meg kell adnod az új sor adott elemének is (enélkül az eseménykezelő csak az első betöltésnél már meglévő HTML elemekre lesz érvényes. Ehhez az kell, hogy nem egy anonim függvényt adsz át, hanem egy már létezőt:
function checkNullAndDuplicates() {
var value = $(this).val();
$('[name="zona_szam[]"]').not(this).each(function(){
if($(this).val() == value || value=="0") {
document.getElementById("error").style.display= '';
}
})
}
}
$('[name="zona_szam[]"]').on('change', checkNullAndDuplicates);Ezt a függvényt kell az új DOM elemnek odaadni. Mivel a mostani módszered egy sima HTML stringet ad hozzá a DOM-hoz, ez elég körülményes, de azt meg tudod egyszerűen csinálni, hogy egy sor hozzáadása után lekéred az összes
[name="zona_szam[]"]
elemet, és megadod az onchange eseménykezelőnek a fent definiált függvényt.2. A change eseménykezelőben megnézed, hogy jó-e az érték, és ha igen, akkor átírod az error elemnek a style.display property-jét 'none'-ra.
-
cattus
addikt
Most visszaolvastam, ha a webszerveren lévő mappának a tartalmát akarod listázni, akkor arra van "beépített" megoldás, apache / nginx konfigot kell hozzá állítani [link]
A fetch szimplán egy HTTP kérést küld a meghatározott URL felé, majd visszaadja azt, ami jön válaszként.
-
cattus
addikt
Reprodukálni tudod esetleg egy jsfiddle-ben? A második betöltés alatt azt érted hogy F5-tel frissítesz, vagy hogy anélkül csak újra lefuttatod a JS kódot?
a "Miért nem használsz CSS-t hozzá" és hasonló kérdéseket mellőzzétek.
Pedig valószínűsítem, hogy az általad felvázolt problémát megszüntetné.
-
cattus
addikt
Tudom, hogy keretrendszer a menő, de ha mondjuk sima Javascriptben kell megírni egy frontendet, ti hogyan készítitek el a templatet?
Sehogy, használok egy már meglévő, jól bevált, egyszerű megoldást, pl. Svelte, Alpine van htmx. Ezek egyike sem jelent nagy package méretet, és hosszú távon sokkal kényelmesebb használni, mint egy saját megoldást, ami 100%-ban feature-incomplete, 100%-ban tartalmaz rejtett bugokat és 100%-ban jobban megéri használni, mint újra feltalálni a kereket.
-
cattus
addikt
Gondolom minden egy form-on belül van és annak az onsubmit eseményére iratkozol fel (vagy az ok gomb onclick-re?). Ez esetben az eseményt kezelő függvényben paraméterként kapsz egy
event
objektumot, ennek apreventDefault()
függvényét kell meghívnod, valahogy így:const form = document.getElementById('myform');
form.addEventListener('submit', event => {
event.preventDefault();
console.log('asd');
}); -
cattus
addikt
válasz
lanszelot #8527 üzenetére
Megpróbálom minél érthetőbben / egyszerűbben összefoglalni:
Először is telepítened kell a Node.js-t a gépedre. Ezt innen letöltve tudod megtenni.
Ha ezzel végeztél, nyitnod kell egy terminál / CMD / powershell ablakot. Ezen keresztül tudod telepíteni a fent említett programot az
npm install -g gedcom
parancs kiadásával.Ezután még mindig a parancssoros felületen kell majd elnavigálni abba a könyvtárba, ahol a fájlod található. Ennek egy alternatívája, hogy megnyitod a windows intézőt, elnavigálsz ott az adott mappába, majd a címsorba az elérési út helyére beírod hogy cmd, majd nyomsz egy entert. Ekkor meg fog nyílni egy parancssor ablak az adott mappához.
Ezután ki kell adnod a következőhöz hasonló parancsot:
parse-gedcom sajatfile.ged kimenet.json
Itt a sajatfajl-t cseréld le arra ami a fájlod neve (a kiterjesztés ne maradjon le).Amint lefutott, a könyvtárban ott lesz a kapott JSON fájl (a példában kimenet.json néven).
-
cattus
addikt
válasz
lanszelot #8447 üzenetére
Böngészőn keresztül JS-sel lokális fájlt nem fogsz tudni olvasni. Vannak rá workaround-ok, pl. hogy a JSON értékét stringként eltárolod egy JS változóba, és ezt ugyanúgy belinkeled a HTML-be mint az ezt feldolgozó JS-t (ez volt látható az általad linkelt megoldásban), vagy indítasz egy HTTP kérést a fájlod felé. Az már rajtad múlik, hogy melyik a neked megfelelőbb megoldás.
-
cattus
addikt
válasz
lanszelot #8295 üzenetére
Az is lehet, hogy rossz irányból közelíted meg a problémát. Próbáld meg azt, hogy a feladatot elkezded lebontani egyre kisebb részekre, amíg az atomi dolgokat nem kapod (ehhez kell egy változó, amivel xy-t kell csinálni, ahhoz kell egy ciklus, etc.), nyilván időközben sok kereséssel / utánanézéssel, hogy mit hogyan érdemes megoldani.
Nem tudom milyen háttérrel rendelkezel vagy hogy miért kezdtél neki az egész programozásnak - és ezt most tényleg nem sértésnek szánom -, de az is igaz, hogy nem mindenkinek való a programozás. Érdemes elgondolkodni mit szeretnél valójában és aszerint tovább haladni.
-
-
cattus
addikt
válasz
instantwater #8161 üzenetére
Kisebb projektekhez én is Svelte-et vagy natúr JS-t ajánlanék, nem azért mert a többi már szar, hanem mert adott feladathoz érdemes a leginkább hozzávaló eszközt választani.
-
-
cattus
addikt
Hát szerintem előbb-utóbb úgyis doksit kell nézegetni, az autocomplete csak egy ideig könnyíti meg az ember dolgát. Én a date-fns-t azért is szeretem, mert moduláris (kisebb bundle size), jól lehet egymásba ágyazni a függvényeket, illetve natív JS dátum osztállyal dolgozik, míg a moment mindig csinál egy saját wrappert.
-
cattus
addikt
Sziasztok!
A következő a helyzet: van nekem egy TypeScript-ben írt full-stack express alkalmazásom pug template-tel + a public mappában kliensoldali JS-sel. Azt szeretném elérni, hogy a kliensoldali JS kódot (+ha lehet akkor a SCSS-t is) webpack-kel vagy hasonlóval bundle-ölni úgy, hogy a pug templating megmaradjon. A szerveroldali kódot nem muszáj, azt jelenleg tsc-vel fordítom és nekem ez elég is.
Főleg azért szeretném, mert jelenleg a kliensoldali függőségeket most CDN-ről húzom be, ezeket szeretném NPM-ről kezelni, mint a többit + az ESNext feature-ök is jól jönnének.
-
cattus
addikt
Egyszer azt írod, hogy mindig jön userId a backendről, máskor meg azt, hogy akkor is ott van a frontenden, ha amúgy a backend el se küldi?
Ellenőrizted a kis-nagybetűket, hogy ugyanaz a JSON-ben, mint az interface-ben? a JS/TS érzékeny ezekre.
Az adatnak akkor is ott kell lennie, ha a TS interface nem egyezik meg vele pontosan. Szóval vagy nem küldi el az adatot a backend, vagy valami más turpisság történik. -
cattus
addikt
Teljesen még nem tiszta, hogyan is képes látni ez a content.html-ben lévő button ID-t
Két dolog miatt. Egyrészt, mert az egész
document
-re raktad rá az event listener-t, tehát az minden egyes, az oldalon történtclick
eseményre (attől függetlenül, hogy mire kattintottál) le fog futni. (Ezt alapvetően én nem nagyon ajánlanám, jobb az, ha az egyes event listener-eknek csak akkor futnak le, ha szükséges)
A másik dolog pedig a JavaScript event capure mechanizmusa, amivel aclick
esemény végigfolyik a DOM elemein. -
cattus
addikt
Igen, ugye az a probléma, hogy az event handler-ben a bubble-capture miatt a target az az ikon lesz. Egy potenciális fix, ha kicseréled a
const editbutton = e.target;
sort erre:const editbutton = e.currentTarget;
-
cattus
addikt
Engedelmeddel írnék néhány feedbacket a kódhoz:
HTML:
A `big` HTML tag obsolete, nem javasolt a használata
<input type="button" /> helyett inkább használjunk <button>-t.
Nem szerencsés, ha a `name` attribútom ugyanaz több input elemnél is, mivel esetleges szerveroldali feldolgozásnál ez azonosítja az egyes elemeket.JS:
var helyett ajánlott let vagy const használata
Személyes preferencia, de szerintem nem mindegy, hogy JS-ből milyen módon kérdezed le a DOM elemeket. Pl. te class alapján teszed, én ezt akkor tenném, ha pl. a class-t akarom módosítani. Ebben az esetben inkábbdocument.querySelectorAll('input[type="checkbox"]')
-ot használnék (így pl. már eleve ki van szűrve minden input, ami nem checkbox).A for ciklus helyett megcsináltam array műveletekkel: fiddle
+1: érdemes jól formázottan tartani a kódot, sokat segít az olvashatóságon (a JSFiddle tudja automatikusan a jobb felül lévő Tidy gombbal).
-
cattus
addikt
válasz
K1nG HuNp #7881 üzenetére
> Az inline stylekkel ugyszint semmi baj nincs, objektiven gyorsabb egy weboldal betoltese ahol nem egy bazinagy css fajlban szerepel minden, de továbbmegyek, a legtobb css-in-js solutin is "inline" style attributumokkent irodik es run/build-time valik style tagekke.
Az inline style-lal az a baj, hogy se formázás, se autocomplete, se write-time error checket nem kapsz, amikor írod, plusz újrahasználni se tudod a stílusokat. A CSS-in-JS libeknek meg csak az outputja inline style, nem véletlenül nem írsz ott se közvetlenül a style tag-be.
-
cattus
addikt
válasz
bandi0000 #7753 üzenetére
FxLayout esetében van olyan, hogy megadod, hogy egyes méretekben hogy viselkedjen. Pl.
<div fxLayout="row" fxLayout.xs="column"></div>
esetén xs méret esetén column, felette row elrendezést használ. Így maradhat a 100% is. Van még gt-xs meg lt-xs is (meg persze a többi méretre is). -
cattus
addikt
válasz
bucihost #7748 üzenetére
Ilyen automatizált megoldás szerintem nincs, de itt le van írva pár dolog, meg ha 13 sor, szerintem ide is bedobhatod.
Amúgy csak egy megjegyzés, hogy a jQuery is JavaScript (pontosabban egy JS-ben írt library), gondolom itt te a DOM API-ra gondolsz, hogy ne kelljen a teljes jQuery-t behúzni.
-
cattus
addikt
válasz
hiperFizikus #7699 üzenetére
1. Elnavigálsz erre az oldalra: [link]
2. Beilleszted a kódot a megfelelő helyre.
3. Rányomsz a Save (Mentés) gombra.
4. Az URL-t kimásolod és beilleszted a hozzászólásodba.
5. ???
6. Profit.Angol nélkül meg
nagyon nehezenkb. sehogy sem fogsz előrébb jutni. -
cattus
addikt
válasz
instantwater #7650 üzenetére
Amúgy a Nest is expressre épít, csak elég sokat elwrappel. Nekem az architektúrája eléggé bejött, meg jóval "opinionated-ebb", mint egy sima express, ezért kezdőknek talán jobban ajánlott. Nálunk a cégben is ezt hozták példának, mint go-to node.js framework. Nameg default typescript-et használ.
Arcanus: amúgy amiket felsoroltál, azoknak nagy része nem framework, hanem build tool.
-
cattus
addikt
válasz
RedHarlow #7617 üzenetére
Csinálsz a '?year=<évszám>'-ra egy regexet. Ha már tartalmazza a link, akkor kicseréled, ha nem, akkor hozáfűzöd.
const regex = /\?year=\d{4}/
if (links[i].href.match(regex)) {
links[i].href = links[i].href.replace(regex, `?year=${year}`)
} else {
links[i].href = `${links[i].href}?year=${year}`;
} -
cattus
addikt
válasz
hiperFizikus #7510 üzenetére
Elképesztő. Elágazást használtál egy programban. Meghajlok kódoló tudásod előtt.
-
cattus
addikt
válasz
Nagyzoli27 #7409 üzenetére
GoogleDuckDuckGo első találat: [link] -
cattus
addikt
válasz
Nagyzoli27 #7400 üzenetére
x.textContent = x.textContent.replace("Ft", "");
x.textContent = x.textContent.replace(",", ".");
-
cattus
addikt
válasz
hiperFizikus #7397 üzenetére
Az első esetben
xa01[0]
ésxa01[1]
-nek amikor értéket adsz, akkor két különböző tömb lesz létrehozva, mivel JavaScript esetében ezt jelenti a[]
szintaxis.A második esetben viszont egy már előre létrehozott tömböt (
xe
) adsz odaxa01[0]
-nak ésxa01[1]
-nek. Ilyenkorxe
értéke nem másolódik le, csak egy referencia lesz beállítva rá, és ezért válozik megxa01
másik értéke, ha az egyiket változtatod. -
cattus
addikt
válasz
hiperFizikus #7393 üzenetére
Ne string-be mentsd el a regexet, hanem regexként, így:
a2 = /\|\|/gm
-
cattus
addikt
válasz
hiperFizikus #7383 üzenetére
myStringVariable.replace(/\|\|/gm, '|')
Ez
a változóban kicseréli az összes '||' karaktert '|' karakterre. -
cattus
addikt
válasz
hiperFizikus #7367 üzenetére
Ajánlom figyelmedbe a kulcsszavas kereső (angolul történő) használatát, ugyanis nagyon sok kört meg tud spórolni neked a későbbiekben is.
-
cattus
addikt
válasz
hiperFizikus #7351 üzenetére
A substr() deprecated, tehát már nem érdemes használni.
A slice() és a substring() között a fő különbség, hogy az előbbi elfogad negatív számokat is.
Új hozzászólás Aktív témák
Hirdetés
- Országosan a legjobb BANKMENTES részletfizetési konstrukció! Lenovo ThinkPad X13 Gen 5
- AKCIÓ! Apple MacBook Pro 16 M4 Pro - M4 Pro 24GB 512GB SSD garanciával hibátlan működéssel
- Zebra ZP505 EPL - Hőpapíros címkenyomtató
- Vásárold meg most a Zalman T7-et, és élvezd a minőséget!
- Szerezd be most az érzékelhető különbséget! Akár 0% THM-re
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest