JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Gyorskeresés
Legfrissebb anyagok
Általános témák
LOGOUT.hu témák
- [Re:] [Luck Dragon:] Asszociációs játék. :)
- [Re:] [D1Rect:] Nagy "hülyétkapokazapróktól" topik
- [Re:] [antikomcsi:] Való Világ: A piszkos 12 - VV12 - Való Világ 12
- [Re:] [sziku69:] Fűzzük össze a szavakat :)
- [Re:] [potyautas:] Miért olyan drága?
- [Re:] [attilasd:] A laposföld elmebaj: Vissza a jövőbe!
- [Re:] [Jack Hunter:] Egérragasztó
- [Re:] [sziku69:] Szólánc.
- [Re:] USB to S/PDif konverter a modern RIAA, elektroncsövekkel
- [Re:] Gurulunk, WAZE?!
Szakmai témák
PROHARDVER! témák
Mobilarena témák
IT café témák
GAMEPOD.hu témák
Téma összefoglaló
Hozzászólások
tepenzed
őstag
köszi, ez megvan, csak az a baj, hogy az adatokat egy firebase adatbázisból olvasom be majd mappelem, a képen látható eredményt kapva. Szóval nem tudom így manuálisan beírogatni a számadatokat, hanem ezen az objektumon kéne végigmenni és úgy felépíteni a barchartot.
Egyébként erről van szó:[link]
Doink
aktív tag
Akkor igazából mindent tudsz, mi a kérdés?
[link]
tepenzed
őstag
Nagyon köszönöm, hogy megnézted, így már érthetőbb, valamiért viszont azt kapom, hogy:
ERROR TypeError: Cannot read property 'entries' of undefined
at SafeSubscriber._next (file:///android_asset/www/build/main.js:2649:46)
at SafeSubscriber.__tryOrUnsub
A sulyhavontát logoltam és megjelennek az adatok, szóval nem értem, hol akad el. Rá tudnál pillantani kérlek ? Beleírtam a beolvasás módját, valamint a d3 nestinget is. (lefutni nem fog jsfiddlen, mert adatbázisból olvas)
Doink
aktív tag
Ha kicseréled a firebase részt egy JSON.parse()-ra akkor viszont lefutna az is. Az hogy hol akad el az meg oda van írva: 2649:49 és az a baja hogy egy undefined-on hívódik meg az entities() fgv.
Itt azért olyan kérdés is felmerül hogy nem-e egyszerűbb a d3.nest előtt összedobni ezt a struktúrát egy ciklussal mint utána 4-el.
tepenzed
őstag
martonx
veterán
Ember, csinálj már egy js fiddle példát, ha már annyira megrekedtel.
Én kérek elnézést!
Zedz
addikt
Sziasztok,
SPA + Expressjs auth rendszerrel foglalkozott már valaki? Több írást is olvastam arról, hogy a JWT bad practice erre a célra. A serverless megoldásokat szeretném mellőzni (firebase, auth0.. társai). Valakinek tanács, ötlet?
Jim-Y
veterán
Cookie based session-okkel? Session azonosito cooki-val jut el a backendre ahol a session-t memcache-ben tarolod (pl Redis).
martonx
veterán
Mi a baj a JWT-vel?
Én kérek elnézést!
Zedz
addikt
Köszi, megnézem.
(#6759) martonx
http://cryto.net/~joepie91/blog/2016/06/13/stop-using-jwt-for-sessions/
martonx
veterán
Én JWT-t eddig még csak tisztán API-khoz használtam, amikben semmi session kezelés nem volt, csak előre gondolkozva kérdeztem, köszi már olvasom is a cikket!
Én kérek elnézést!
Zedz
addikt
Lehet a vége nekem is ez lesz. Most Firebase auth van behúzva, gondoltam egy tető alá hozok mindent, de kevesebb meló lenne login után kérni a szerveremtől egy jwt-t, aztán azzal validálni az api kéréseket.
martonx
veterán
Ha a jwt-t csak arra használod, hogy az api kéréseket ne engedd boldog boldogtalannak, azaz session-t nem kezelsz velük, akkor szerintem a jwt a legegyszerűbb. Ha minden egyes híváskor azt is tudni akarod, hogy kitől jött, azaz session is kell neked, akkor valóban egy klasszikus cookie based session-ös megoldás tisztább lenne.
Én kérek elnézést!
kw3v865
senior tag
Sziasztok!
Kezdő vagyok JS-ben, jelenleg ezzel a problémával küzdök: a features nevű változó értékét (ami egy tömb) szeretném felhasználni a függvényen kívül. Ez most szépen kiírja a konzolra a tömb értékét:
function refresh(){
var features;
$.ajax('http://xxx', {
type: 'GET',
data: {xxxxxx}
}).done( function (response) {
var features = xxxxx
return console.log(features);
})
};
console.log(refresh())
Viszont én fel akarom használni a features változó értékét. Mondjuk úgy, hogy egy másik (külső) változónak átadom az értékét. Hogyan lehet ezt megtenni?
Ha azt csinálom, hogy return console.log helyett : return features
, majd így hívom meg a függvényt:var tomb = refresh();console.log(tomb);
Akkor undefined lesz.
[ Szerkesztve ]
martonx
veterán
Szia,
Több gond is van itt.
Egyrészt az ajaxnál nem a response-t használod, hanem az xxxx-et, aminek semmi értelme.
Másrészt az $.ajax egy promise-t csinál, ezt kapja el async módon a .done.
Azaz a var tomb = refresh();console.log(tomb); esetben azért kapsz undefined-ot, mert hamarabb tér vissza a függvény, mint ahogy a .done-hoz visszatérne az ajax eredménye.
Megoldás, a függvényednek egy promise-t kellene visszaadnia, és ha kívülről akarod használni, akkor kívül kell majd használnod a .done-t.
Egy jsfiddle-t indíthatnál a probléma szemléltetésére, akkor konkrétabb segítséget is kaphatnál.
Én kérek elnézést!
Rickeffe
aktív tag
.
[ Szerkesztve ]
Rickeffe
Rickeffe
aktív tag
Így fáradtan csak egy kérdés: a második "features" elé biztosan kell a var?
Rickeffe
CSorBA
őstag
Teljesen mindegy. Koncepcionálisan rossz.
kw3v865
senior tag
Köszi a választ, Ajaxot most látok először, elkezdek alaposan utánanézni, mert még nem értem mi az a promise.
Jelenleg így néz ki (sajnos a CORS miatt nem működik ezzel a demo adattal, tehát a poligon nem jelenik meg itt) JSFiddle-ben:
http://jsfiddle.net/kw3v865/1zo8r5Lp/748/
A lényeg az, hogy ez egy poligont kellene, hogy megjelenítsen az alaptérképen.
Nálam localhost-os szerverrel, saját adatokkal működik is. A lényeg az lenne, hogy úgy szeretném megírni, hogy - mivel a szerveren az adatok időnként változnak - egy függvénybe akarom beletenni ezt: vectorSource.addFeatures(formatWFS.readFeatures(response))
Magyarul az ideális működés az lenne, hogy amikor meghívom a függvényt, akkor újra hozzáadja a feature-t (poligont) a térképhez (a régit nem szabad, hogy törölje!).
martonx
veterán
Légyszi üzemeld be a CORS-t, mert így elég nehéz lesz segíteni. Bár önmagában már ezzel is sokat tisztult a kép, hogy mit szeretnél, mert szerintem eredetileg nem is igazán ezt kérdezted
Kicsit beformáztam, hogy ne úgy nézzen ki, mint egy hányás, és szerintem ez már csak szimpla kód refaktorálás feladat.
[ Szerkesztve ]
Én kérek elnézést!
kw3v865
senior tag
Köszi, hogy próbálsz segíteni.
Ezt a Fiddle-t most hagyjuk szerintem, mert összetettebb a probléma, kivülállóként nehéz átlátni. A saját adataimat kellene megosztanom, azt meg nem akarom (port forward-olás meg egyéb dolgok, elég macerás). Végül sikerült egyébként rájönnöm, mi volt a gond.
Viszont ismét felmerült egy kérdés: adott ez a függvény, amibe be van ágyazva egy másik (jquery):
var getObject = function (curr_id, prev_id) {
jQuery.ajax(url,
{
dataType: 'json',
success: function (data, textStatus, jqXHR) {
if (curr_id == prev_id){var b};
return b;
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(errorThrown);
}
});
}
Hogyan tudom megoldani, hogy ha meghívom a getObject függvényt, akkor visszadja a "b" nevű változó értékét?
sztanozs
veterán
igazából a jquery nem ad vissza semmit (azonnal) - a success:-ben kellene azt feldolgoznod - ezért hívják ajax-nak a lekérdezést ("Asynchronous JavaScript + XML")
illetve ha async: false - ot állítasz be, akkor vár (blokkol) amíg visszatér a lekérés, és vissza tudod adni így:return jQuery.ajax...
Viszont ez jQ v1.8 óta deprecated.
[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
Jim-Y
veterán
Nem csak, hogy deprecated, de talan a legnagyobb worst practice a javascript ekoszisztemaban. A kolleganak eloszor is a javascript asynchronous termeszetet illetoen kene olvasgatnia a neten, mert a kerdeseibol vilagosan latszik, hogy nincs tisztaban, hogy hogyan kell szervezni egy aszinkron js kodot. A problema megoldasara/kezelesere tobb modszer is van, de mindegyikkel gondja lesz amig nem erti az alap koncepciot.
[ Szerkesztve ]
Jim-Y
veterán
Amint XHR-t hasznalsz (ajax, fetch, etc) megvaltozik a kodod viselkedese es neked is mashogyan kell gondolkodnod es a kodod is mashogy kell szervezned. A legjobban tenyleg akkor jarsz ha utananezel a neten (ezer + 1 leiras van rola) hogy hogyan kell aszinkron js kodot kezelni. Arra kell gondolnod, hogy egy AJAX hivas eredmenyere csak valamikor a jovoben szamithatsz (nyilvan mivel egy tavoli szerverrel kell kapcsolatot teremteni ami kb barmennyi ideig eltarthat). Neked ezen ido alatt, amig varsz a tavoli szerverre nem szabad felfuggesztened a programod futasat, annak tovabbra is mukdonie kell. Majd amikor a jovoben megerkezik az uzenet az eredmennyel azt fel kell dolgoznod. Ez ugye az aszinkron mukodes de talan mar ebbol is lehet sejteni hogy a szinkron gondolkodas nem jo es te a peldadban es a kerdeseddel szinkron kodban gondolkozol.
Csupán érdeklődésképp, ha már így szóba került...
Pure JavaScriptben van-e coro(utine) függvény? Természetesen nem built-in-re gondolok, hanem bármilyen sajátra. Illetve await és valami executorban futtatásra is kíváncsi vagyok. Bár gondolom az executor veszett ügy, mivel még mindig egy egyszálas, alapvetően böngészőben futó szkriptnyelvről beszélünk. Azt meg nehezen tudom elképzelni, hogy a browser csak úgy engedi a threadek halmozását.
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
Doink
aktív tag
Vannak webworkerek, async és await is.
martonx
veterán
Sőt, már jó ideje vannak service workerek is
Én kérek elnézést!
Nahát, ez remek hír!
Feltétlenül utána kell néznem akkor, köszönöm!
Eleinte angol billentzuyetet akartam. De aztán megismerkedtem a nagy 'Ő'-vel!
Winner_hun
félisten
Előre szólok semmit nem értek hozzá, sose csináltam ilyet, sose tanultam, stb...
Itt van ez a script
Olyan módosítást lehet benne eszközölni hogy az Allow all U-turns ne csak egy felületen, egérrel való kattintásra működjön hanem gyorsbillentyűt lehessen hozzárendelni?
A kódját elnézve a végén van ez:
$('#sidebar').on('click', '#allowUturns', function(event) {
switchUturn(1);
updateButtons();
});
$('#sidebar').on('click', '#disallowUturns', function(event) {
switchUturn(0);
updateButtons();
Ha jól gondolom talán itt kéne valamit mókolni.
► "Kicsit olyan webcaritas" ◄ ヅ
martonx
veterán
ha jól sejtem a click mellé kellene egy szókösz keyup is, hogy mindkét eseményre reagáljon. Aztán belül már csak figyelned kell, hogy melyik gomb lett lenyomva.
Hm, bár a keyup nyilván csak inputokhoz, vagy documenthez kötve értelmezhető. A sidebar nem tudom micsoda.
Én kérek elnézést!
martonx
veterán
Off: honnan kerül elő ilyen ipari méretű régi fos, legacy jquery-s példakód? Miért nem tud már a jquery is végre kihalni? Komolyan ki az, akinek így 2018-ban fontos, hogy IE11-el is kompatibilis legyen, amit csinál?
Én kérek elnézést!
#78693120
törölt tag
Jártál te már hivatalban, vagy orvosi rendelőben? Ott még IE9-10 is akad.
Illetve van olyan családtagom, akit nem tudok a nem frissített XP-ről ("csak lelassítják a gépet") és az azon futó IE-ről lebeszélni. Neki elmondása szerint működik, de hogy mik lehetnek azon a gépen, azt el sem tudom képzelni. Szerencsére magának telepíti, nem az én dolgom...
martonx
veterán
XP-n is van 49-es Chrome, ami szintén nem egy mai gyerek, de egy IE8-hoz képest űrrakéta. Azt az ismerősödet is megnézném, aki ki bírja várni, hogy IE8-al mi töltődik be neki a Pentium 3-as gépén
Én kérek elnézést!
#78693120
törölt tag
Hidd, hogy egyesek tényleg ilyet használnak és nem hajlandóak az IE-t lecserélni. Hiába mondod nekik, hogy van FF/Chrome is. Ami jó volt 15 éve, az most is jó és ez igaz a P3-ra is. Amíg szét nem esik, addig használják...
Illetve az IE még sokáig kap támogatást, mert amíg az MS kiad olyan OS-t, amiben van IE (Win10 ugye), addig azt támogatják is biztonsági frissítésekkel. Szóval még egy darabig velünk marad az őskövület browser.
Amúgy tesztelő vagyok és ugyanúgy tesztelnem kell mindent IE11-en is, szóval nem csak nálunk ez a helyzet. Hiába egyre alacsonyabb a százaléka, ha ez sok felhasználó esetén még igen magas számot jelent és nem lehet lemondani róluk.
[ Szerkesztve ]
martonx
veterán
Mi végre idén januártól szakítottunk az IE-vel örökre. Már csak annyit kell rajta tesztelni, hogy megjelenik-e a használj újabb böngészőt üzenet.
[ Szerkesztve ]
Én kérek elnézést!
Winner_hun
félisten
Passz, nekem ez kínai, nem az én scriptem, de jó lenne egy kicsit tuningolni hogy hatékonyabb legyen a munka. Azt hittem könnyen megoldható, csak beírni valami sablonos dolgot a klikk mellé hogy azzal is működjön aztán hajrá.
Van egy oldalsáv, azon jelenik meg a gomb, gondolom az lenne a sidebar.
► "Kicsit olyan webcaritas" ◄ ヅ
ben800
aktív tag
Sziasztok !
Nemrég kezdtem el érdeklődni a javascript iránt hobbi szinten, és szeretnék egy apróbb egyszerű játékot létrehozni, ahol ki vannak kötözve a léggömbök, mozognak egy picit jobbra balra, mintha a szél fújná őket, majd ha lelövünk egyet akkor X százalékos eredményt ad véletlenszerűen. Találtam is magamnak egy kisebb sablont githubon.
Viszont az animáció részében picit elakadtam, próbáltam az elemeket mozgatni, így mindig csak az egyik elem mozgot, ezt ki is kommenteltem a kódban, majd második nekifutásra megpróbáltam .animate-el, de ilyenkor meg elszállnak a lufik és nem maradnak meg egy helyben . Konkrétan már csak az hiányzik hogy úgymond egy helyben mozogjon a 4 darab lufi, és úgy mintha a szél fújná őket picit ide-oda.
A filet feltöltöttem ide, ha valaki tudna egy picit segíteni ebben akkor nagyon hálás volnék
var balloon = $(".balloon");
var counter = 0; //számláló
var percentage = 0; // százalék
if (percentage == 0){
percentage = Math.floor(Math.random() *100);
}
function start () {
var direction = 'B';
var right = 0;
var left = 0;
var timer = 0;
for(var i=0; i<4; i++){
var balloonCopy = balloon.clone();
balloonCopy.css({left:370 + i*100});
balloonCopy.css({top:400});
balloonCopy.appendTo("body");
if(direction == "B") {
var top = balloonCopy.animate({top: "100%", top: Math.random() * 100 + "px" }, 16000 - Math.random() * 4);
}
balloonCopy.click(function() {
pop_sound.play();
$(this).remove();
counter = counter + 1;
$(".counter").html(counter);
if(counter > 0) {
$(".percentage").html(percentage + "%");
$('.score-box').addClass('ready');};
});
};
balloon.remove();
}
/*
function doMoveTop() {
if( direction == "B" && parseInt(foo.style.top) < 80) {
foo.style.top = parseInt(foo.style.top)+1+'px'; }
else if(direction == "B" && parseInt(foo.style.top) >= 60){
foo.style.top = parseInt(foo.style.top)+1+'px';
direction = "T";
}
else if(direction == "T" && parseInt(foo.style.top) > 60){
foo.style.top = parseInt(foo.style.top)-1+'px';
}
else {
foo.style.top = parseInt(foo.style.top)-1+'px';
direction = "B";
}
setTimeout(doMoveTop,40);
}
function init() {
direction = "B";
foo = document.getElementById('balloon1');
foo.style.top = '18px';
doMoveTop();
}
window.onload = init;
*/
Sziasztok!
Ezt a szignatúrát nem igazán értem, valaki esetleg el tudná nekem magyarázni?
window.ColumnWidthManager.setColumnsWidth = (function (columnWidthManager) {
return function (gridId) {
columnWidthManager.setWidths(gridId, maxWidths);
};
})(new window.ColumnWidthManager(new swh.ElementWidthProvider()));
Illetve hogyan oldható meg az, hogy legyen egy újabb olyan metódus, ami a fentebbi ColumnWidthManager példányt használja?
martonx
veterán
Ez egy IIFE.
Azaz egy funkció, ami rögtön meg is hívja önmagát.
JS világban ezt felfoghatod kvázi namespace-nek is.
Másrészt ez a kód nekem nem tetszik. Az egy dolog, hogy ES5-ös, de ahogy ezt így önmagában nézem ez így igazán értelmetlen bonyolítás.
Én kérek elnézést!
Jim-Y
veterán
const elementWidthProvider = new swh.ElementWidthProvider();
const columnWidthManager = new window.ColumnWidthManager(elementWidthProvider);
function getColumnsWidthSetterFn(columnWidthManager) {
return function (gridId) {
columnWidthManager.setWidths(gridId, maxWidths);
};
}
// 1
window.ColumnWidthManager.setColumnsWidth = getColumnWidthSetterFn(columnWidthManager);
// 2
window.ColumnWidthManager.setColumnsWidth = (gridId) => {
columnWidthManager.setWidths(gridId, maxWidths);
};
És akkor hogy is csinálok rajta egy másik metódust úgy, hogy ugyan azt a ColumnManagert használják?
(#6790) Jim-Y azt hiszem értem, legalábbis próbálkozok, köszi mindkettőtöknek
[ Szerkesztve ]
topjoyy
tag
Hali!
Kezdő vagyok még JS terén és azzal a kérdéssel fordulnék hozzátok, hogy hogy lehetne azt megoldani, hogy a gombra kattintva minden kattintásnál meg változzon a background színe? Köszönöm előre is!
<!DOCTYPE html>
<html>
<body>
<head>
<style>
#p {background:red; padding:10px; display:none;}
</style>
</head>
<button onclick="my()">Katt</button>
<p id=p>Valami</p>
<script>
function my()
{
document.getElementById("p").style.display = "block";
}
</script>
</body>
</html>
[ Szerkesztve ]
Jim-Y
veterán
Ez segit? https://stackoverflow.com/a/1484514
topjoyy
tag
Nincs valami egyszerűbb. Nem lehet csak function függvénnyel megoldani?
[ Szerkesztve ]
Jim-Y
veterán
Pontosits kerlek. Egyreszt ennek a kifejezesnek "function függvénnyel" igy ebben a formaban nincs ertelme. Mi a nehez benne, mit nem ertesz rajta, es meg inkabb mi az amit pontosan el szeretnel erni?
DNReNTi
őstag
Gondolom a function fuggveny az azt jelenti hogy egy darab fuggveny. Vagyis gondolom.
function setRandomColor() {
$("#colorpad").css("background-color", function(){
var letters = '0123456789ABCDEF';
var color = '#';
for (var i = 0; i < 6; i++) {
color += letters[Math.floor(Math.random() * 16)];
}
return color;
});
}
but without you, my life is incomplete, my days are absolutely gray
Jim-Y
veterán
http://jsfiddle.net/132mzyx6/6/ Ennel egyszerubben nem nagyon lehet ezt megoldani.
topjoyy
tag
Úgy szerettem volna, hogy nincs benne semmilyen forrás pl: jQuery, mert még először sima JS-t akarom tanulmányozni. Amúgy, csak arra lennék kíváncsi, hogy ha megnyomok egy gombot, akkor ne csak 1 funkció legyen hanem több.
[ Szerkesztve ]
Jim-Y
veterán
Gondolom akkor nem nézted meg a linket mert oda is van írva hogy "no library (pure JS)". Az alatt mit értesz hogy ne csak egy funkció legyen hanem több? Azt hogy ne csak a hatterszint változtassa meg hanem a gombra kattintva más is történjen?
topjoyy
tag
Erre gondoltam. Ez nem jQuery?
const btn = document.querySelector('.btn__change-bgColor');
const target = document.querySelector('.target-wrapper');
A kattintósnál meg azt értem, hogy van egy gomb és ha rákattintok elsőre, akkor legyen mondjuk piros, ha rákattintok másodjára legyen mondjuk nagyobb és így tovább.
[ Szerkesztve ]
Mai Hardverapró hirdetések
prémium kategóriában
- Worlde PANDA-61 Midi billentyűzet
- LG UltraWide UltraGear 49GR85DC-B 3 Év LG Grancia !!! 240 Hz
- DJI Avata 2 Fly More Combo (Three Batteries)
- -59% HP EliteBook x360 830 G7:i5 10310U,16GB,256GB,vil.MAGYAR bilI.,IR,13.3" Touch,100%sRGB,WWAN 4G
- Sony PS5 (1116A) + 2TB Samsung SSD bővítés a gyári 825GB mellett, két karral + venom töltőhub