- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Samsung Galaxy S23 Ultra - non plus ultra
- Milyen okostelefont vegyek?
- Bemutatkozott a Moto G32 4G
- Termékoldal is van a Galaxy Watch FE-hez
- Yettel topik
- Xiaomi 13 - felnőni nehéz
- Féltucat régi Samsung kapott új One UI-t, köztük az A52s
- Apple iPhone X - vissza a jövőbe
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
Hirdetés
-
Bemutatkozott a Redmi 13 4G
ma Ne keverjük össze a Redmi Note 13 4G-vel vagy a Redmi 13C 4G-vel.
-
Nem kap több frissítést a Wolcen: Lords of Mayhem
gp Szeptembertől a többjátékos mód már nem lesz elérhető.
-
Retro Kocka Kuckó 2024
lo Megint eltelt egy esztendő, ezért mögyünk retrokockulni Vásárhelyre! Gyere velünk gyereknapon!
-
Mobilarena
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
-
Sk8erPeter
nagyúr
válasz Bjørgersson #4768 üzenetére
De attól még Java-téma marad a Java-kérdés, nem lesz belőle JavaScript sehogy sem.
Hátha segít:
http://stackoverflow.com/questions/10846931/how-to-obtain-administrator-rights-in-java-web-start-application-need-to-writti
http://askubuntu.com/questions/69667/run-jnlp-applications-with-root-permissionsSk8erPeter
-
Sk8erPeter
nagyúr
-
Sk8erPeter
nagyúr
wis már leírta a választ, nincsenek megadva az erőforrásfájlok. De még magát a jQuery-t sem adtad meg, mint felhasznált erőforrást. Érted, egy autó kerék nélkül nem fog gurulni, ez is olyan.
"megismerkedtem a animation.css"
Az mi? A CSS transition tulajdonságaira gondolsz?"ez lenne a kulcsa a header rész görgetés általi opacity csökkenésének, valamint az oldalon található szöveg (kép) animációkra, ami a júzer görgetésére következik be a lentebbi részeken. One page design által felépített oldalról van szó"
Ilyesmi jellegű izgő-mozgó, animált dolgokra, amiket szeretnél, itt van egy gyors ránézés alapján jónak tűnő példa, ami megmutatja, hogy nem feltétlenül szükséges a Waypoints használata sem (viszont ettől még nagyon jól jöhet):
http://designshack.net/articles/css/how-to-design-animated-sliding-page-elements-with-css/Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Sk8erPeter #4784 üzenetére
Érdekességként a scrollozós témára:
http://janpaepke.github.io/ScrollMagic/examples/advanced/parallax_scrolling.html
https://github.com/janpaepke/ScrollMagicSk8erPeter
-
Sk8erPeter
nagyúr
Ja, hogy erre az Animate.css-re gondoltál. Ezzel futólag már találkoztam, amúgy nem ismerem, de nem rossz.
"Ez a ScrollMagices, általad linkelt téma is nagyon tetszik. Kár, hogy már az én "one page designos" oldalamat függlőlegesbe terveztem"
Egyáltalán nem kár, mert a ScrollMagic természetesen függőleges oldalakra is alkalmazható, ott van rá ezernyi példa még. Menj a belinkelt oldalon fölül a "Menu" feliratra, ott fel fogja dobni a többi példaoldalt.
Pl. ezt:
http://janpaepke.github.io/ScrollMagic/examples/basic/simple_tweening.htmlSk8erPeter
-
Sk8erPeter
nagyúr
Nincs mit!
A betűtípusok CSS-fájlját mozgasd fölülre, a többi CSS-fájlhoz, hiszen a CSS-fájloknak mindenképp előbb kell szerepelniük, mint a scriptfájloknak (pl. ha egy-egy scriptfájl betöltése időigényes, a böngésző ne csak később kapja meg a stílusdefiníciókat, hogy így kéne kinéznie az elemeknek, ez okozhat egy villódzást, ezért kerülendő). Ezenkívül a scriptfájlokat érdemes közvetlenül a body lezáró tagje (</body>) elé mozgatni inkább, hogy azok betöltése, feldolgozása ne hátráltassa a <body>-ban szereplő többi elem megjelenítését.
Egyébként jó ez így, de annyit szoktak még ezen javítani, hogy szerveroldalon cache-elik a NEM külső szerverről (pl. CDN-ről), hanem azonos tárhelyről behúzott CSS-, ill. scriptfájlokat egy-egy minimalizált fájlba (tehát egy darab azonos tárhelyen szereplő CSS-, ill. egy darab azonos tárhelyen szereplő JS-fájl; mindezt úgy, hogy a whitespace-ekkel spórolnak, például nem szerepelnek benne sortörések, felesleges szóközök, mint a jQuery minimalizált változata), hogy egyetlen requesttel letölthető legyen, és azt az egy-egy darab fájlt kelljen csak gyorsítótáraznia és betölteni a böngészőnek szükség esetén. A minimalizálás azért érdekes, mert így még kisebb méretű lesz a letöltendő fájl. A CDN-ekről behúzott tartalom azért lehet kivétel, mert az ilyen requestek párhuzamosíthatók. De mindezt automatizáltan szokás elintézni, vannak erre kész library-k, szóval ne kezdj el ilyesmit kézzel megírni majd. De nem is feltétlenül érdemes most egyelőre ezzel foglalkoznod, mert ez már inkább az optimalizálgatós rész.A Waypoints-os kérdésre: nem teljesen tiszta, hogy is csináltad pontosan a saját kódodnál, így nehéz válaszolni rá, mi lehet a gond, ezt fejtsd ki még plíz.
Sk8erPeter
-
Sk8erPeter
nagyúr
Pedig csak a következő menüpontra kellett volna kattintanod.
http://imakewebthings.com/waypoints/guides/jquery-zepto/"Prior to version 3.0, Waypoints was strictly a jQuery plugin. You'll notice most of the examples on this site use code that is compatible with the new no-framework build of Waypoints using class instantiation and generally available DOM querying methods, like this:
var waypoint = new Waypoint({
element: document.getElementById('new-operator'),
handler: function(direction) {
notify(this.id + ' hit')
}
})
If you're using the jQuery or Zepto builds, you can still use the no-framework approaches featured in the documentation, but those builds also provide extensions specific to the framework."Aztán egy példa:
var waypoints = $('#options-only').waypoint({
handler: function(direction) {
notify(this.element.id + ' hit')
}
})wis itt korábban már linkelt egy működőt.
Tehát az van, amit mondott, hogy csak simán rossz fájlt használ, vagy rossz az elérési út.[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Ha adhatok egy tanácsot, ne az újításokkal kezdj foglalkozni, hanem sajátítsd el rendesen a JavaScript-alapokat, aztán mélyítsd a tudást olyan feladatokkal, amikkel hétköznapi feladatokat oldasz meg. Ne olyan dolgok megértésével kísérletezz kapásból, amikhez az is szükséges, hogy értsd az alapokat ahhoz, hogy értékelni tudd és értsd is az újdonságokat. Ha a relatíve stabil alap megvan, utána mehet a többi.
Szerintem Jim-Y tudása már elég speckó dolgokra terjed ki, sokszor már nekem is totál ismeretlen és új, amikről beszél. De Jim-Y kolléga a melója meg saját elhivatottsága miatt sokkal intenzívebben foglalkozik a JavaScripttel. Az, hogy honnan hova jutott ezen a területen, az egyébként szerintem elég példamutató, elég rendesen látszik a belefektetett energia.Jim-Y: remélem elpirultál.
Sk8erPeter
-
Sk8erPeter
nagyúr
Az agyatlan copy-paste nyilván nem jó, mert nem tudhatod, mennyire megbízható vagy erőforrás-takarékos egy kód, ahogy az sem jó, ha egy nem igazán ismert library-t/plugint/frameworköt/egyebet kételkedés nélkül felhasználsz. A Te megközelítésed jó, hogy tanulmányozod a kódot, megpróbálod megérteni, aztán ha jónak találod, felhasználod. Lehetőség szerint módosítod. DE természetesen van bőven olyan eset is, amikor nem akarod tudni, hogy egy többek által is javasolt és tesztelt kód/library/plugin/framework/akármi mitől működik jól. Egyszerűen mert sokszor nem éri meg az időbefektetést. (Amúgy lehet olyan is, hogy felfedezel egy hibát/rossz megközelítést egy publikus repository-ban, forkolod a projektet, végrehajtod a módosítást, küldesz egy pull requestet, jelzed a szerző felé, hogy figyelj, itt van a javított kód, az meg szarik rá (és mondjuk annyit sem ír, hogy ezért és ezért nem fogom elfogadni). A hátránya, hogy neked minden kódfrissítésnél patch-elned kell a kódot a saját javításoddal.)
Függhet a liszensztől is, hogy mennyire szerencsés sima copy-paste-tel felhasználni külső kódot egy az egyben, ha az mondjuk simán kiderül kifelé is (ld. kliensoldali kód vagy mások által is látható repository, ilyesmik).
De ha különösebb akadálya nincs, megismerted a kódot, és azt tényleg jónak találtad, semmi gond nincs azzal, ha felhasználod. Simán előfordul, hogy az ember akár egy rövid kódrészletet talál Stack Overflow-n vagy máshol, amit egy az egyben fel tud használni.Sk8erPeter
-
Sk8erPeter
nagyúr
válasz PumpkinSeed #4823 üzenetére
"az internetre feltett kódok jobb esetben azonnal elvesztik licencüket"
És mi a rosszabb eset?Amúgy ja, abban igazad van, hogy komolyabb eseteket leszámítva itt azért etikai szempontok is erősen érvényesülnek (ti. hogy más tollával ékeskedni forrás-megjelölés nélkül nem szép dolog; persze nyilván ezt is mértékkel, nem kell minden kétsoros kód forrását is feltüntetni ).
Sk8erPeter
-
Sk8erPeter
nagyúr
Fú nem tom, számomra ezek a return console.error(...) és hasonló kerülő megoldások olyan metódusoknál, amik valójában nem adnak vissza semmit (OK, "implicite" undefined-ot adnak vissza, de érted), nagyon tákolásszagúak. (még ha alkalmazzák is)
Semmi gond nincs egy egyszavas return; sorral sem. Igazából ha valaki lefelejti a returnt, akkor így is-úgy is lefelejti, szóval a két sor egybevonása sztem sok mindent nem old meg (bár lehet, hogy valakinek ad egyfajta megszokást, csak így meg ronda).Amúgy fura ez a figyelmeztetés, hogy a return false az event handlereknél deprecated, legalábbis ha a Reactet használod, kiíródik ezek szerint, ez nekem is új. (Szóval hogy explicite kell használni az e.stopPropagation() és/vagy e.preventDefault() metódusokat, simán a return false nem jó ezek helyettesítésére, hanem egyértelművé kell tenni a dolgot, hogy melyikre van szükséged.)
================
Más:
basszus, most látom, hogy a mostani topiclogónál a Java (és nem JavaScript) gőzölgő kávéscsészéje van, miért?
Így is eléggé keverik a JavaScriptet a Javával, adjuk alájuk a lovat?[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz fordfairlane #4853 üzenetére
Szerintem ezek pont nem annyira szórakoztató példák, de nem tudom, minek húzzátok fel magatokat ezen ennyire. Legalább ilyenkor az ember elgondolkodik picit rajta, hogy mi miért is úgy működik (és itt speciel mindegyikre van elég gyors magyarázat, de ezt ti is vágjátok ), vagy épp lehet, hogy kicsit agyal, hogy ez így logikátlan, de az itteni példák erre nem túl jók. Egyszer linkeltem én is egy ilyet, amiben sztem ennél viccesebb példák voltak, gondoltam 1-2 perc agykikapcsolásnak jó lesz, és akkor engem oltottál le egészen érthetetlen stílusban, mai napig nem értem, miért: [link]. Itt még mindig megnézhető a videó: [link].
Itt szerintem a [] + [] === empty string, []+{} === [object Object], {} + [] === 0, {} + {} === NaN nem annyira kapásból rávághatóak, hogy miért is vannak így...Ja, viszont a twitteres példában a var x * 3; sort nem igazán értettem, mivel az nem túl meglepő módon SyntaxErrorhoz vezet, innentől kezdve az értelmetlen. Szerk.: ja, most nézem, valszeg a * helyett = jelet akart írni...
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz fordfairlane #4858 üzenetére
Valószínűleg csak következetesen rosszul írja a "coercion" szót...
Sk8erPeter
-
Sk8erPeter
nagyúr
Semmilyen HTML-kódot nem mellékeltél hozzá, azt sem írtad le, hogy egyáltalán mikor hívódik meg a függvény, minek kellene történnie, nem értem, milyen módon szeretnéd változókban tárolni a kiszámolt értékeket (mert nem tudni, mi a cél).
De megpróbálom valahogy értelmezni: most az van, hogy egyszerűen adott mezők alapján kiszámolsz kosárba pakolandó értékeket, megjeleníted őket, de ha módosul az űrlap, nem tudod utólag kideríteni, hogy a vásárló milyen termékeket is rakott be a kosárba?Amúgy lehetőleg angol változóneveket használj, angolul programozz, simán azért, mert ez a bevett és elfogadott szokás, a programozás (és általában az informatika) nyelve angol, akár tetszik, akár nem. Nem beszélve a csapatmunka lehetőségeiről, amit így korlátozol. Ha odaadod vagy megmutatod ezt a kódot olyannak, aki nem tud németül, az esélyes, hogy meg sem próbál elgondolkozni rajta, vagy pedig anyázni fog.
Sk8erPeter
-
Sk8erPeter
nagyúr
Tudok németül, szóval nekem nem gond, de annak, aki nem tud, idegesítő lehet. Mondjuk nekem is idegesítő még úgy is, hogy értem, mi van odaírva. Az is szokott zavarni, ha valaki magyarul kódol (lehet sznobizmusnak tekinteni, de akkor is az az elfogadott szokás, hogy angolul kódolunk).
Egyrészt jsFiddle-ön át kell kattintani "No wrap - in <head>"-re vagy "No wrap - in <body>"-ra a bal fölső panelnél. Ez azt határozza meg, hogy hova fogja beágyazni a JavaScript-kódot a <script>-tagekkel. Ha megnézed a böngésző webfejlesztő eszközeivel a generált kódot, akkor ezt pontosan tudod követni. De múltkor pontosan ugyanez volt, ami miatt nem működött nálad.
Másrészt nem perzisztens módon tárolod az adatokat, így érthető, hogy a lapújrafrissülések esetén minden elvész.
Tárolhatnád mondjuk sessionStorage-ben vagy localStorage-ben (hogy melyikben, az felhasználásfüggő) a kosár tartalmát, itt egy egyszerű példa:
http://stackoverflow.com/questions/2010892/storing-objects-in-html5-localstorage/2010948#2010948Harmadrészt semmivel nem akadályoztad meg, hogy lapújrafrissülés történjen azonnal az alert után, akármi is volt az eredmény, például ha tök üresen hagyom a mezőket, kapok figyelmeztetést, de ettől még megköszönöd szépen a rendelést, aztán el is mennek az adatok szerveroldalra.
Itt ráadásul tök felesleges minden alkalommal alerttel megköszönni a rendelést, hiszen még meg sem rendeltem, csak kosárba pakoltam.A kosárba pakolás során egy jó UI esetén nem frissül újra az egész oldal, mert tök felesleges. Az egyéni döntés kérdése, hogy a kosár tartalmát el akarod-e küldeni szerveroldalra is, vagy csak kliensoldalon tárolod. A szerveroldal mellett az szól, hogy eltárolhatod későbbre is a kosárba pakolt tartalmat, és akárhol máshol jelentkezik be, akkor megint előkotorható a korábbi kosártartalom, hogy mondjuk később folytatni tudja a vásárlást. De legtöbbször csupán kliensoldalon intézik el az egész kosárba pakolgatást, az adatok tárolását, például az előbb említett módszerekkel.
Az űrlap elküldését pedig az eseménykezelőben kell megakadályozni. Például event.preventDefault() segítségével.
A HTML-kódba bedrótozott onclick-attribútumokat és társait pedig kerülni kell, szépen szeparáltan legyen a JavaScript-kódban az eseménykezelés, a kettő legyen jól elválasztva. .addEventListener() segítségével tudsz hozzáadni egy adott elemhez eseménykezelőt. Példa (a többi hibát nem javítottam, csak ezt szemléltetem!): http://jsfiddle.net/r4s0ef87/2/Sk8erPeter
-
Sk8erPeter
nagyúr
"A jelenlegi tanárommal erről beszélgettem, szó volt a local/sessionStorage lehetőségéről is. Azt mondta, hogy elsősorban ezek a módszerek az IE-nél nem alkalmazhatóak, ezért jobb módszer lehet a cookies az adatok tárolására."
Hát a tanárod akkor kissé le van maradva, vagy megmaradt az IE6/7-re fejlesztős korszakban (asszem 2015-ben ezt nyugodtan meghagyhatjuk egészen speciális (pl. vállalati) területek "kiváltságainak"), mert ahogy martonx már leírta, még az IE8 is támogatja a localStorage/sessionStorage használatát:
http://caniuse.com/#search=localStorage
http://caniuse.com/#search=sessionStorageSzóval hogy most cookie-t, localStorage/sessionStorage-ot használsz, azt ne támogatottság alapján döntsd el (hacsak nem akarsz még őskövület böngészőkre is fejleszteni), hanem az alapján, hogy melyikre van szükséged.
Pár gondolat:
- felesleges egyesével minden gombot külön-külön beregisztrálni egy eseménykezelőhöz id szerint, értelmesebb lenne valami általánosabb struktúrába szervezni, pl. hozzájuk rendelni egy osztályt, és pl. .querySelectorAll használatával kigyűjteni őket, végigmenni a listán, és hozzájuk csapni az eseménykezelőt (az elemen kiváltódó adott eseményre feliratkozni).
- az előzőhöz kapcsolódóan próbálj általánosabban gondolkodni, nem mindenhez bedrótozni az id-t, és aszerint végezni vele valamit (nyilván esetfüggő, lehet olyan elem, hogy csak és kizárólag ahhoz akarsz valamilyen viselkedést rendelni), mert ez nehézkessé teszi a kódodat, nehezebben tudsz azonos viselkedésű elemeket lazán hozzáadni a HTML-kódhoz anélkül, hogy a JavaScript-kódot módosítanod kéne
- JavaScript-kódba nem írunk CSS-kódot! Tehát a stílust nem szabad JavaScriptből definiálni, hogy ilyen kerete legyen, olyan színe, stb., hanem erre szépen létre kell hozni egy CSS-osztályt, és magát az adott class-t az elemhez hozzáadni vagy épp levenni róla szükség szerint. Pl.:
http://stackoverflow.com/questions/2155737/remove-css-class-from-element-with-javascript-no-jquery/18492076#18492076
- most nem nagyon van időm leírni a hogyanját, de a kosárba pakolt elemeket tárolhatod egy változóban, úgy, hogy csak azok a függvények érjék el, akiknek szabad is, hogy hozzáférése legyen, tehát legyen egy kosárba hozzáadós, eltávolítós, adatfrissítős függvényed (meg ami még kellhet) - hogy hogyan rejtsd adott scope-ba, az nem feltétlenül kezdő feladat, de addig is megoldhatod sima globális változóval (de tudnod kell, hogy ez veszélyes módszer, mivel bárki hozzáférhet)
- lehetőség szerint kerüld el az ismétlődő metódushívásokat, értem ezalatt azt is, hogy a natív metódusokat hívogatod újból és újból adott kódban, mert egyrészt csak csúnya code bloat, másrészt plusz időt vesz igénybe ezek újbóli végrehajtása (még ha nem is dob észrevehetően a kód futási idején egy document.getElementById újbóli hívogatása - pl. az eseménykezelődben kétszer is szerepel a document.getElementById("zahlungsMethod"), pedig ezt elég lett volna egyszer leírnod, és eltárolni egy változóban, ez persze csak egy példa); szóval azt, amire később úgyis szükséged lesz újból, tárold el egy változóban"»» A kosárba pakolás során egy jó UI esetén nem frissül újra az egész oldal, mert tök felesleges.
Ezt nem teljesen értem, ezt "kódügyileg" hogyan képzeljem el?"
Úgy, hogy nem megakadályozod az alapértelmezett viselkedését az űrlapnak, hogy az adatok szerveroldalra küldésével együtt újrafrissüljön az egész lap, erre írtam már korábban az event.preventDefault()-ot például (van még az event.stopPropagation() is, de most egyelőre hagyjuk).Na most ennyire volt idő.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
"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.[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz daninet #4882 üzenetére
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...Sk8erPeter
-
Sk8erPeter
nagyúr
válasz daninet #4887 üzenetére
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/Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Mentiii #4899 üzenetére
Persze, megoldható. Az onbeforeunload eseménykezelőjében egyből visszatérsz, ha bizonyos feltételek nem teljesülnek. A példában null-lal tértem vissza, de az implicit undefined-dal való visszatérés is jó lenne, számomra ez így egyértelműbb, és működik az összes népszerű böngészőben, IE9-től kezdve legalábbis biztosan. Ha az egész megerősítős mókát csak akkor szeretnéd aktiválni, ha be van jelentkezve a felhasználó, akkor először is megvizsgálod, hogy be van-e jelentkezve, és ha igen, csak akkor iratkozol fel eseménykezelővel az onbeforeunload eseményre - vagy magában az eseménykezelőben is vizsgálhatod a feltételt, ez egyéni döntés kérdése.
Jelen esetben a document.activeElementnek vizsgáltam a tagname attribútumát, hogy amennyiben az egy <a> tag, akkor anchorró/linkről van szó, arra kattintva váltódott ki az esemény. Emlékeim szerint ez ilyen esetben simán megfelelő lehet.Itt a demo:
https://jsfiddle.net/9eb5p6o6/1/Sk8erPeter
-
Sk8erPeter
nagyúr
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.Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Tibcsi55555 #4942 üzenetére
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.
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Tibcsi55555 #4944 üzenetére
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.
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Tibcsi55555 #4950 üzenetére
Szívesen. Persze, hogy lehet, bár ez már nagyon nem JavaScript-téma. Viszont önmagában arra, hogy egymás mellé legyen rendezve két elem, nem kell táblázatot használnod, lehet inline-ná vagy inline-block stílusúvá tenni az elemet, és akkor is egymás mellé kerül, de odaraktam neked táblázatba is, de utóbbit tényleg csak indokolt esetben használd (és nézd meg, most mi változott a CSS-kódban az előzőhöz képest):
http://jsbin.com/jodipaxoxa/2/editSk8erPeter
-
Sk8erPeter
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.
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz martonx #4985 üzenetére
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.Sk8erPeter
-
Sk8erPeter
nagyúr
válasz PumpkinSeed #4989 üzenetére
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?
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz PumpkinSeed #4993 üzenetére
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?
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
"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.
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Speeedfire #5024 üzenetére
Ha jól láttam abból a pár másodpercnyi ránézésből, valami slideshow-szerűséget szeretne készíteni, az meg pont az a tipikus eset, amikor bármit is rögzíteni id-vel a lehető legrosszabb ötlet. Ha ugyanarra az oldalra két darab slideshow-t is szeretne tenni (mert mondjuk az egyik divben a partnerek listája csúszkál jobbra-balra, a másikban meg pl. képeket mutatnak a legutóbbi konferenciáról, vagy a tököm tudja), akkor máris meg van lőve, és nyúlkálhat bele megint a kódba, és jöhet rá, hogy a francba, jobb lett volna kapásból egy fokkal általánosabb megoldani.
Ha meg már amúgy is jQuery-ről van szó, akkor már kiindulástól kezdve rossz a megközelítés, eleve jQuery-plugint kellene fejleszteni, és akkor bármilyen selectorra működhetne a dolog. Attól, hogy pluginként építi fel az ember a kódot, semmivel sem lesz bonyolultabb, sőt, még legalább valami értelmes keretet is ad, és a doksi is igencsak beszédes:
http://learn.jquery.com/plugins/basic-plugin-creation/
A konkrét slideshow-struktúrával kapcsolatosan nyilván kell némi megkötésekkel élni, az nem lehet akárhogyan, de a selectort ne rögzítsük már le előre.Aztán még ott van az az érv is, hogy a slideshow-kódokból Dunát lehet rekeszteni, a lightweighttől kezdve a nehézbombázóig, mindenféle effektekkel teletűzdelve, ingyenes és fizetős egyaránt van ilyenekből, nem biztos, hogy érdemes feltalálni a spanyolviaszt.
Ha esetleg nem tök általános slideshow-ról volt szó, hanem ennél picit specifikusabbról, és muszáj hozzáfejleszteni vagy saját kódot írni, attól még a fentiek az általánosabb, kevésbé bebetonozott kódkészítéssel kapcsolatban ugyanúgy igazak.Szerk.:
Amúgy Jim-Y jól mondja, ez általános szoftvertervezési elv is.Természetesen a fenti elveket csak az kövesse, aki igényes a saját kódjával szemben is, és nem sajnálja azt a plusz pár percet, amit egy picit általánosabb, több helyen (akár a megjelenített oldalon belül többször, akár más projektben) is felhasználható megoldás nyújthat. Szerintem ez olyan dolog, hogy ha az ember folyamatosan így próbál gondolkodni, akkor eleve sokkal nagyobb körben teheti működőképessé a kódját (és például nem fogja akkora macerának érezni egy rögzített azonosító helyett egy általánosabb osztály felhasználását).
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
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;.
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz PumpkinSeed #5059 üzenetére
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.[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Speeedfire #5064 üzenetére
"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.
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Speeedfire #5067 üzenetére
"Miért ne lehetne gyorsabb? Nem tudhatod. "
Most ezt komolyan mondod? Szerinted ha először parse-olod a localStorage-ed tartalmát, majd a megfelelő elemet lekéred, az nem tart tovább, mint azonnal hozzáférni a változó tartalmához?"Miért? Mert leírtam, hogy mire használtam? "
Valószínűleg simán előítélet a múltbeliek alapján. Sorry.
Egyébként mutathatnál egy konkrét use case-t, hátha nincs szükség külön adatbázisra, és megoldható localStorage vagy más adatstruktúra segítségével is. Vagy hát ahogy gondolod, ha nem akarsz, akkor ne, gondoltam hátha megkímélünk pár kör futásától.Sk8erPeter
-
Sk8erPeter
nagyúr
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)Sk8erPeter
-
Sk8erPeter
nagyúr
válasz PumpkinSeed #5100 üzenetére
É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])
?[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz PumpkinSeed #5102 üzenetére
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/Sk8erPeter
-
Sk8erPeter
nagyúr
válasz PumpkinSeed #5105 üzenetére
Szívesen.
Ezt nem értem, honnan hova akarod "áttenni az inputot"? Ez utóbbi mit jelent? Szóval mit szeretnél elérni?[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz martonx #5122 üzenetére
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).
Sk8erPeter
-
Sk8erPeter
nagyúr
Ezt még nem olvastam, de sejtettem, hogy valójában ilyen nevetséges a háttérsztori. Egyébként én támogatnám, hogy akár a régi fos kódok eltörésével erőltessük keresztül ennek az automatikus pontosvessző-beszúrásnak (szerepeljen már legalább egyszer magyarul is ) az eltörlését.
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz martonx #5135 üzenetére
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ő.
Sk8erPeter
Új hozzászólás Aktív témák
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- PlayStation 5
- A fociról könnyedén, egy baráti társaságban
- Politika
- Kormányok / autós szimulátorok topicja
- EA Sports WRC '23
- Kerékpárosok, bringások ide!
- Mibe tegyem a megtakarításaimat?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- További aktív témák...
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Alpha Laptopszerviz Kft.
Város: Pécs