- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- A Samsung bemutatta az Exynos 2500-at
- Milyen okostelefont vegyek?
- iPhone topik
- Bemutatkozott a Poco X7 és X7 Pro
- Élő adás Utazómajommal és Kerek Istvánnal az AI kapcsán
- Samsung Galaxy S22 és S22+ - a kis vagány meg a bátyja
- India felől közelít egy 7550 mAh-s Redmi
- Megjelent a Poco F7, eurós ára is van már
- Leica kamerákat kap a Xiaomi Mix Flip 2 is
-
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
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
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
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
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. -
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ő.
-
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
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
nagyúr
válasz
fordfairlane #4858 üzenetére
Valószínűleg csak következetesen rosszul írja a "coercion" szót...
-
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...
-
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? -
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
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
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
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. -
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
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.html -
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/ScrollMagic -
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
nagyúr
-
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-permissions -
Sk8erPeter
nagyúr
válasz
Bjørgersson #4766 üzenetére
JNLP = Java Network Launch Protocol
Tehát ez Java-kérdés, nem pedig JavaScript.
JRE/JDK telepítve van?
http://stackoverflow.com/questions/1912676/i-am-not-able-launch-jnlp-aaplications-using-java-web-start
http://prohardver.hu/tema/java_topic/friss.html -
Sk8erPeter
nagyúr
A "Z" betűre itt a magyarázat:
http://en.wikipedia.org/wiki/ISO_8601#UTC
"UTC
If the time is in UTC, add a Z directly after the time without a space. Z is the zone designator for the zero UTC offset. "09:30 UTC" is therefore represented as "09:30Z" or "0930Z". "14:45:15 UTC" would be "14:45:15Z" or "144515Z".UTC time is also known as 'Zulu' time, since 'Zulu' is the NATO phonetic alphabet word for 'Z'."
Még ez is érdekes lehet:
"Combined date and time representations
<date>T<time>
A single point in time can be represented by concatenating a complete date expression, the letter T as a delimiter, and a valid time expression. For example "2007-04-05T14:30".If a time zone designator is required, it follows the combined date and time. For example "2007-04-05T14:30Z" or "2007-04-05T12:30-02:00"."
-
Sk8erPeter
nagyúr
ISO 8601 szabvány szerinti formátumban kapod meg a dátumot. Természetesen mint megszokhattuk, itt is problémás a dátumkezelés, mint úgy általában JavaScriptben, úgyhogy a megbízható megoldás tényleg csak az, hogy felszabdalod a stringet:
http://dev.enekoalonso.com/2010/09/21/date-from-iso-8601-string/function dateFromISO8601(isostr) {
var parts = isostr.match(/\d+/g);
return new Date(parts[0], parts[1] - 1, parts[2], parts[3], parts[4], parts[5]);
}Esetedben tehát:
var myDateString = "2014-12-20T22:10:00+0100";
var myDate = dateFromISO8601(myDateString);
console.log('myDate: ', myDate); -
Sk8erPeter
nagyúr
válasz
superboyka #4741 üzenetére
Javaslom, legközelebb használd a webfejlesztő panelt a Ctrl+Shift+I megnyomásával (vagy jobb klikk valahova, Inspect element/Elem megtekintése), így meg tudod nézni, hogy milyen link lett belőle, hova mutat, használd a Network és Console fület is a hibák kiderítésére (meg hát a többit is nyilván). Később saját magadnak (meg nekünk) spórolsz meg időt azzal, hogy sokkal gyorsabban rájössz az ilyen jellegű hibák - legalább potenciális - okaira.
Amúgy az előző kérdésed nem is JavaScripttel kapcsolatos volt, az ilyenek mehetnek az érintett topicokba. -
Sk8erPeter
nagyúr
A jQuery-kérdéseket jobb lenne, ha a neki szánt topicba írnád:
http://prohardver.hu/tema/jquery_kerdesek/friss.html"body onloadban kerül meghívásra a loadPrompt"
Felejtsd el az onload-attribútumot, csak egy gány kényszermegoldás, amikor az ember a HTML-kódba beleerőlteti a JavaScript-kódot.
Ha már jQuery-t használsz, akkor kerüljön inkább így a kódba (egy a lehetséges megoldások közül):
$(document).ready(function(){
loadPrompt();
});
Válaszd szét a különböző nyelvekhez tartozó kódokat, ahogy csak tudod. (Pl. ne keverd a HTML-kódot a JS-sel.)A többire meg akkor tudnánk válaszolni, ha megosztanád velünk a kódot többi részét is, azt sem tudhatjuk, hogy létezik-e #filesavediv azonosítóval ellátott elemed, létezik-e #open id-jú, kerül-e valamilyen hiba kiírásra a böngésző webfejlesztő paneljének konzoljára, és így tovább.
-
Sk8erPeter
nagyúr
válasz
martonx #4725 üzenetére
Az utolsó bekezdésben leírt dolog tényleg hasznos. A többit viszont nem értem:
- mitől kifacsart és nyakatekert a Chrome devtoolja? Elég sokat használtam/-om, és nem nagyon tapasztaltam kényelmetlenséget vele. (Az Eclipse-et pedig már kezdem megszeretni most, hogy komolyabban elkezdtem megismerni, fejlesztettem hozzá plugineket (toolbarra ikon, jobbklikkmenü-bővítés, headless buildelés kiváltása (aminek eléggé örültem, amikor összejött, rendesen kotorni kellett a dokumentációhoz, meg hozzáértőktől segítséget kérni), ilyesmik), meg kezdem kiismerni a hülyeségeit, pedig régebben nagyon nem komáltam én sem, de sikerült megbarátkoznunk.)
- a böngésző+IDE debuggolás kombó pedig igazából nem nagy szám - persze ettől függetlenül nagyon hasznos, és szerintem kevesebben használják, mint kéne -, pl. NetBeans-szel is - és persze más IDE-kkel is, emlékeim szerint Visual Studióval is - nagyon jól össze lehet hozni a Chrome-ban látott oldal debuggolását, úgy, hogy a NetBeans-ben látod a JavaScript-kód különböző pontjaira ugrálást, itt le is írtam korábban, hogyan:
http://prohardver.hu/tema/weblap_keszites/hsz_10596-10596.htmlA böngészőhasználat meg egyéni ízlés dolga, szerintem a többség nemcsak divatból nem kedveli az IE-t a mindennapi használat és fejlesztés során, hanem például
- annak túlzott faék-egyszerűsége miatt (persze van itt is olyan dolog eleve beépítve, ami meg másik böngészőben nincs, bár elég rövid a lista),
- meg a bővíthetőség hiánya miatt (pl. Chrome-ra nehéz olyan extensiont találni, amivel valaki ne foglalkozott volna, IE-re meg nehéz olyat találni, amivel valaki foglalkozott volna),
- ezenkívül a fejlesztés sem olyan könnyű hozzá, mint pl. a Blink-alapú böngészőkhöz (Chrome, Opera) - én például használok saját, általam írt extensionöket, amikre nagy szükségem van;
- ezenkívül továbbra is hordozza a nagyon régről örökölt kényelmetlen, sok tekintetben rendkívül rugalmatlan felületét, például a beállítás-ablak borzalmasan nehézkesen kezelhető (nehézkesen megtalálható menüpontok, logikátlanul felépített menürendszer; ráadásul már minden jelentős böngészőnél meg van oldva az is, hogy magához a beállításoldalhoz is tartozzon URL, így akár az is könyvjelzőzhető, IE-nél a régi ocsmányság van még mindig sajnos).
Szóval bőven van hova fejlődnie még az Internet Explorernek ahhoz, hogy sokak számára használható legyen, én például mindig lehetőleg relatíve rövid ideig használom, mert túl gyorsan előjönnek azok a hiányosságai/kényelmetlenségei, amik miatt nem szeretem. Ettől függetlenül jobb úton halad a dolog, mint régebben, csak egyelőre a böngészőfejlesztésben valahogy nem sikerült úgy előrelépnie a Microsoftnak, mint például a .NET-es vonalon. -
Sk8erPeter
nagyúr
"De amugy szerintem a FF-ban nincs olyan ami a DevTools-ban ne lenne, inkább fordítva van"
Pedig de, a FF inspectora alapértelmezetten egy-két apróságban okosabb (azt leszámítva, hogy ezt asszem nem lehet bővíteni extension segítségével), például a beépített EyeDropper, meg a 3D View ([link]) kifejezetten hasznosak tudnak lenni.
Persze a legtöbb dologra elég a Chrome sajátja is (én is azt használom gyakrabban, mert a Firefoxot nem sikerült megszeretnem a GUI relatív vánszorgóssága miatt). -
Sk8erPeter
nagyúr
"Akkor nem tudom, hogy itt mit töltöttem le"
Egy számodra - és legtöbbünk számára - teljesen felesleges extensiont.
Nem hiszem, hogy túl sokan lennének a topicban, akik a DevTools különböző verziói között váltogatnának.(#4716):
Google-t próbáltad már?
http://hu.wikipedia.org/wiki/Document_Object_Model
http://nyelvek.inf.elte.hu/leirasok/JavaScript/index.php?chapter=21
stb. -
Sk8erPeter
nagyúr
Jelen példám ilyen tekintetben tényleg rossz volt, ebben teljesen igazad van: jelen esetben tényleg jobb lett volna -1-gyel visszatérni, ha nem találtuk meg a megfelelő indexet (ellenkező esetben meg épp az indexszel térünk vissza, ami szintén egész szám). Cseppet sem tekintendő mintának a példa, gyors, pár perc alatt összekalapált kód (írtam is, hogy a tiéd sokkal ésszerűbb), annyiból viszont jó, hogy látszik belőle, mennyire könnyen megcáfolható az a hülyeség, hogy ne legyen több kilépési pont: itt épp egy ciklusból térek vissza azonnal, amint megvan a találat, hiszen a feladattal végeztünk, semmi értelme tovább tartózkodni a függvényben. Lehetne átadni egy változónak a talált értéket, majd break-elni a ciklust, vagy épp a feltételt a for ciklus fejlécében ennek megfelelően meghatározni, majd ezután visszatérni, de tökéletesen felesleges és ronda code bloat lenne.
-
Sk8erPeter
nagyúr
1. Dehogynem, ez így jobb. Tegnap ez jött ki akkori agyi állapotomban, evvan.
Viszont jó, hogy mutattad ezt a módszert, jobb látni több, főleg jobb alternatívát.
2. Ja.
3. Valóban úgy van, hogy alapból undefined-dal tér vissza a függvény JavaScriptben, ha nincs explicite meghatározva a visszatérési érték, de szerintem meg gusztustalan egy olyan függvény, ami valamilyen feltétel nem teljesülése esetén egyből visszatér valamivel, egyébként viszont semmilyen visszatérési érték nincs (ha a feltétel teljesül); csak rábízod magad a nyelv ilyen szempontból ronda adottságára. Így csinálni, ahogy Te javasolnád, sokkal inkább antipattern, úgyhogy ezt a részt buktad.(Amúgy bocsi, hogy önhivatkozás, de ajánlanám még egyszer ebben a hsz.-emben az utolsó bekezdést.
)
Főleg ha az ember más nyelvben is programozott, amiben az általad írt módszer még csak nem is működne, akkor hozzászokik, hogy már csak a kód olvashatósága tekintetében sem mindegy, hogy hogyan is van megvalósítva ez a rész (hogy egyik helyen explicite kiírod a visszatérési értékét a függvénynek, egyszer nem, majd lesz valahogy). Na meg nem biztos, hogy undefined-dal akar az ember visszatérni, lehet, hogy null-lal, vagy false-szal, vagy -1-gyel, vagy akármivel, tervezői kérdés; az undefined csak egy lehetséges példa volt.
Múltkor elvileg épp az ilyen apróságokról beszéltél, ami jobb fejlesztővé tehet valakit, és amitől olvashatóbb kódot produkál, hát most mi ez az ellentmondásosság?(#4700) ^Boss:
Elég beszédes a függvényedben az a rész, ahol appendeled a <table>-t, meg annak a lezárását, hát tedd ezt a részt bizonyos feltételektől függővé, hogy csak akkor appendeljen, ha valamilyen feltétel teljesül, egyébként ne. -
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
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
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.html -
-
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
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
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;
} -
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.
-
Sk8erPeter
nagyúr
Ami miatt egyáltalán nem fut le a kód, hogy ezt írtad:
console.log("Thank you! We should race at the next concert!);nincs lezárva a string, tehát ez helyesen:
console.log("Thank you! We should race at the next concert!");Az összehasonlítás if (feedback > "8") helyett első körben:
if (parseInt(feedback, 10) > 8)
Persze itt semmi értelmes ellenőrzés nincs, normális validáció során megnézed azt is, hogy mondjuk a feedback változó, ami egy string, nem tartalmaz-e nem megengedett karaktereket (pl. betűket, amikor csak számok megengedettek; jelenleg mondjuk ha beírod, hogy "9abc", akkor azt is parse-olni fogja 9-re, de mégsem ellenőrizted, hogy a felhasználó nem gépelt-e be általad nem elfogadott karaktereket, pedig illik, ennek megoldását rádbízom).
Működik az explicit parse-olás nélkül is, ha > "8" helyett > 8-at írsz, DE szerintem sokkal szebb és kezelhetőbb, ha egyértelműen jelzed a kódban, hogy mi is történik, tehát hogy egy stringből kotorsz ki egy egészszám-értéket.Szerk.: egyébként ha rákattintasz a JSHint gombra a jsFiddle-felületen, akkor segíteni is fog, hogy hol van jelenleg elrontva a kódod, érdemes használni, mert így nem akadsz el ilyeneken, hogy egy stringet elfelejtettél lezárni. Meg érdemes figyelni a szintaktika-kiemelésre, mondjuk jelen esetben könnyű volt elsiklani felette.
-
Sk8erPeter
nagyúr
"»» month: Integer value representing the month, beginning with 0 for January to 11 for December. [link]
Kíváncsi lennék, ki volt az az idióta, aki ezt ilyenre kitalálta, és miért tette. De igazából az egész Date objektum egy állatorvosi ló a mit ne típusú JavaScript programozói hibák szemléletes bemutatására."
Ó, hogy ezzel milyen messzemenőkig egyetértek.Pontosan ugyanez jutott eszembe a téma kapcsán, csak nem akartam megint fikázódni.
Ott kezdődik, hogy dátumoknál teljesen értelmetlen ez a 0-tól való számozás, amikor konkrét hónapokról, meg napokról van szó, de egyéb gondok is vannak.(#4612) Jim-Y:
Ez jópofa. -
Sk8erPeter
nagyúr
válasz
martonx #4597 üzenetére
Ja tényleg, az is az
, használtam felhasználóként egyszerű letöltögetésekre, meg tárgyinfók megnézésére (mondjuk amennyi Moodle-felületet eddig láttam, szerintem elég béna, bár az mellékes), de amúgy a fenti feladat megoldására milyen lehet fejlesztői oldalról? Simán össze tudsz dobni ilyen kérdezz-feleleket egyszerű grafikus felületen, úgy, hogy még akár az is lazán megoldja ezt a feladatot, akinek amúgy a webfejlesztéshez sok köze nincs? Sosem láttam még fejlesztői oldalról, de gondolom megoldották ezt a részt is normálisan.
-
Sk8erPeter
nagyúr
Hát abban a formában, ahogy írtad, ennek ellenkezője volt, legalábbis nem lehetett kihámozni belőle az utolsó bekezdésedben írtakat.
"Az autentikáció miatt pedig kell(ene) majd
* vagy valami szerver oldali dolog
* vagy kliens oldali javascript
* vagy mindkettő"
Ez azt jelentené, hogy lehet választani, pedig itt nagyon nincs vagy-kapcsolat, hanem csakis és-kapcsolat lehet a kettő között, tehát kizárólag az utolsó opció (mindkettő) játszik.(#4595) martonx:
Hát biztos vannak ilyenek, nem ismerem őket. Pölö tudsz ilyet? -
Sk8erPeter
nagyúr
Szerintem félreértetted a dolgot, ez egy HTML+JS-alapú teszt, nem pedig Wordben lévő teszt, csak a gond vele, hogy egy undorító ötezer éves tákolmányról van szó, borzalmasan elavult, és amúgy is ronda kóddal.
Amúgy ha már új megközelítésről beszélünk, akkor a kliensoldali JavaScript-kód nem tudom, hogy jön az autentikációhoz (szerk.: értsd: ha már újonnan elkészítjük, ne tudják már megnézni a jelszót a forráskód böngészésével... írta, hogy ha már valaki ilyet is tud, akkor megérdemli azon a tanfolyamon az 5-öst, de azértmárna). -
Sk8erPeter
nagyúr
Szerintem meg most elég felesleges volt a nekiesés, nyilván nem vágja a témát, így gondolom nem is próbálja magától megcsinálni. Lehet, hogy nem tartana sokáig elmagyarázni neki, mi a pálya a kóddal, hogy lehet működésre bírni a tákolmányt, ha lenne említésre méltó szabadidőm, akkor még meg is kukkantanám ingyé' is, de most nem alkalmas. Mondjuk azt is megértem, hogy ezer éve készült kódok további tákolásában nem nagyon akarnak asszisztálni a zzemberkék.
-
Sk8erPeter
nagyúr
-
Sk8erPeter
nagyúr
válasz
Speeedfire #4567 üzenetére
"Érdekes, hogy rohadt sokféleképpen elfogadja, de így nem"
Igazából annyira nem meglepő, különböző böngészők különböző módon implementálhatnak dolgokat, vagy épp nem implementálják, főleg pl. nem szabványos dátumformátumot nem kötelező, hogy minden böngésző parse-oljon; a Firefox az általad használt "YYYY.MM.DD." (még pont is van a legvégén!) dátumformátumot pont nem "fogadja el". Lehet ilyesmire library-t is használni, hogy cross-browser módon használhatók legyenek egyéb formátumok is (pl. a DateJS segítségével az "YYYY.MM.DD" (figyelem, itt nincs pont a legvégén, pl. 1925.11.11) formátumot is használhatod, Firefoxban, Chrome-ban, Operában és IE-ben is működni fog), de érdemes inkább eleve a megszokott(abb)/szabványos formátumokat felhasználni (ez szerveroldalra és kliensoldalra egyaránt igaz). -
Sk8erPeter
nagyúr
Pont nemrég írt róla:
http://prohardver.hu/tema/javascript_topic/hsz_4249-4249.html
Igazából nagyon röviden annyi a gond vele, hogy bizonyos helyzetekben a kódírás vagy épp kódolvasás során nem egyértelmű, egész pontosan mire is vonatkozik a this, ezt el lehet kerülni azzal, ha még "időben", a megfelelő helyen átadod a this-t egy beszédes változónak, vagy például eseménykezelőkben az event.targetet, event.currentTargetet, stb. használod.Azért persze olyan nagyon démonizálni sem kell, például egy rövid eseménykezelőben nincs baj belőle, ha a this-t használod (vagy $(this)-t), ha az elég egyértelmű, viszont ha már picit bonyolódik a helyzet, érdemes egyértelműbbé tenni a kódot (az olvashatóság és a helyes működés érdekében is). Azért mondjuk a kód jobb, ha minden tekintetben következetes.
-
Sk8erPeter
nagyúr
válasz
fordfairlane #4551 üzenetére
Igen, pont ezt fejtegettük Jim-Y-vel, ő is demonstrációs céllal mutatta a példákat.
-
Sk8erPeter
nagyúr
válasz
Cathfaern #4546 üzenetére
"jquery-s eseményen belül a this a jquery object lesz"
Hát pedig ez nagy tévedés, itt egy példa, amin keresztül igen könnyű belátni:
http://jsfiddle.net/6k7jpzbe/ -
Sk8erPeter
nagyúr
Szerinted a selectorok csak a jQuery miatt érdekesek?
Sajnos ez most nem volt túl értelmes önigazolás, hogy nem komálod a jQuery-t.
Egyrészt ugye kezdjük a selectorokat a CSS-nél. Ha nem vágod a selectorok működését, nem vágod a CSS működését. Aztán a selectorokra építve ott van a .querySelector() (document/Element), .querySelectorAll() (document/Element) is.
Meg ott van a Sizzle JavaScript Selector Library, ami pure JS. Ezt használja a jQuery. -
Sk8erPeter
nagyúr
Hogy tudtál eddig működő kódot írni, ha nem tudtad, hogy működnek a selectorok?
Nehogy még véletlenül valami kezdő félreértse, inkább leírom, hogy van helyesen:
1.) '#content.inner'
- content azonosítójú ÉS inner class-szal ellátott elemre illeszkedik:<div id="content" class="inner">
...
</div>2.) '#content, .inner'
- content azonosítóval VAGY inner osztállyal ellátott elemre illeszkedik (az is jó, ha az egyik ezek közül nincs meg, vagy ha ugyanarról az elemről beszélünk, és mindkettő igaz rá, de ezt most szándékosan kihagyom a példákból, nehogy valakit megtévesszen) - hiszen felsoroljuk, mely elemeket szeretnénk kiválasztani:erre is illeszkedik (szándékosan különraktam, nem hierarchikusan):
<div id="content">...</div>
<div class="inner">...</div>erre is (egy másik elembe van ágyazva, de tök mindegy):
<div id="content">
...
</div>
<div id="anotherone">
...
<div class="inner">...</div>
...
</div>és erre is (itt egymásba ágyazva szerepelnek):
<div id="content">
...
<div class="inner">...</div>
...
</div>3.) '#content .inner'
- a content azonosítóval ellátott elemen belüli, inner osztállyal ellátott elem(ek)et keressük (egymásba ágyazott struktúra):<div id="content">
...
<div class="inner">...</div>
...
</div> -
Sk8erPeter
nagyúr
válasz
Speeedfire #4532 üzenetére
Na, akkor még egyszer: tehát minden kattintás után kiíródik ez a warning a konzolra? (És mindig az eseménykezelő függvény teljes lefutása után?)
-
Sk8erPeter
nagyúr
válasz
Aquiles #4529 üzenetére
Pl.: jQuery UI Autocomplete, azonbelül a Remote datasource példa az érdekes.
-
Sk8erPeter
nagyúr
válasz
Speeedfire #4526 üzenetére
"Ami érdekes volt, hogy az esemény után dobta ezt a hibát, nem közben.Holott utána már semmi mást nem hívok meg."
Ez most nekem kicsit gyanús mondat... Akkor egész pontosan hogy is dobja a hibát? Az "esemény után"? Tehát amikor a click event konkrétan megtörténik? Az eseménykezelő lefutása után? VAGY csak az eseménykezelő beregisztrálása (a mutatott kódrészlet lefutása) után, tehát még nincs semmi köze a kattintás eseményhez, csak szóltunk, hogy van egy ilyen eseménykezelőnk?
Hát vigyázzá', itt a szavaknak SÚLYA VAN!!!!44NÉGYNÉGY -
Sk8erPeter
nagyúr
válasz
Speeedfire #4524 üzenetére
"Egy darab van pedig belőle."
Egy darab azonosítót használsz az egész oldalon?
Mondom, próbáld meg másik jQuery-verzióval, legalább kíváncsiságból, semmi mást nem változtatva, hogy ott is előfordul-e a hibajelenség. Annyira nem elképzelhetetlen, hogy valamilyen probléma csak Firefox alatt jön elő, rákeresve az "Empty string passed to getElementById()" hibaüzenetre sokaknál FF-hez kötődő probléma volt. Fura a hibajelenség, mert ennyiből belső implementáció hibájának tűnik (aztán lehet, hogy nem, de próbáld má' ki másikkal).
"Azt próbáltam már, de nem hozott eredményt"
Hogyan próbálkoztál? -
Sk8erPeter
nagyúr
válasz
Speeedfire #4519 üzenetére
Egészen biztos, hogy egy azonosítóból csak egy darab van a megjelenített oldalon? Itt valaki azt írja, hogy azt tapasztalta, hogy FF-ban akkor keletkezik ilyen hiba, ha ugyanazzal az azonosítóval több elem is el van látva, ami persze kerülendő. Nem tudom, ez-e a probléma, lehet, hogy nincs köze hozzá, de csak egy tipp.
Következő tipp az lenne, hogy hátha valami furcsa bug jelentkezik Firefox esetén, esetleg próbálj meg egy másik jQuery-változatot. Aztán egyéb oka is lehet, most hirtelen ennyi jutott eszembe. -
Sk8erPeter
nagyúr
válasz
Chrystall #4505 üzenetére
Szerintem használj valami normális lejátszót első körben, amit karban is tartanak.
Példa:
jPlayer
http://www.jplayer.org/latest/demos/
eléggé szanaszéjjel-állítgatható.
Itt van a forráskód verziókezelőn is, ha kell: https://github.com/happyworm/jPlayer
A dev-ágon 2 napja volt commit, szóval asszem ez jól mutatja, hogy eléggé karbantartják.Persze hogy Safariban mit művel a lejátszó, fogalmam sincs.
Próbáld ki a demóoldalon. Mindenesetre érdemes karbantartott library-ket használni úgy általában.
-
Sk8erPeter
nagyúr
Bevallom, számomra ez a
function getName() {
return name;
}
return {
getName: getName
};illetve
function getName() {
return name;
}
self.getName = getName;pattern még mindig kaotikus - mi van, ha 30 metódusra van szükségem, 30-szor kell kódot ismételnem (self.getName = getName, self.tokmindegy = tokmindegy, stb.)?
Amúgy jelen esetben miért nem elég ez (kódismétlés nélkül)? --> http://jsfiddle.net/4sj41ku5/6/var App = (function() {
/**
* @private
*/
var name = 'My App';
return {
/**
* @public getter
*/
getName: function() {
return name;
}
};
}()); -
Sk8erPeter
nagyúr
válasz
norby10 #4400 üzenetére
Elkúrtad a linket, gondolom ez akart lenni:
http://jsfiddle.net/norberto1112/f3L07884/
Hogyhogy mi a gond? Talán hogy a mezőnek még nincs értéke, és pont azt is adja vissza?
(Fogadjunk, valami olyasmit szeretnél, hogy legyen egy űrlapod, benne egy szövegmezővel, és most elküldéskor szeretnél alertelni a bepötyögött értéket - de előbb tanulj meg kérdezni...) -
Sk8erPeter
nagyúr
Szerintem bad practice-eket megosztani Smarty.js néven nem túl jó ötlet...
Akkor már írd oda, hogy mit NE, és mit IGEN. Ne csak a NE-megoldás legyen ott...
Nem beszélve arról, hogy már csak azért is rossz a kód, mert nincs típusellenőrzés sem, nem biztos, hogy az átadott változónak (ami nem biztos, hogy típushelyes) létezik egyáltalán .length property-je. -
Sk8erPeter
nagyúr
válasz
martonx #4395 üzenetére
"Szóval igen, erre is gondoltam, csak úgy voltam vele, hogy ezt így hosszadalmasabb levezetni, mint példának felhozni a CMS-t, ahol ez szükségképpen eleve így van."
Tudod, hogy szeretek korrigálgatni bizonyos mondatokat CMS-témában (amik félrevezetőek lehetnek annak, aki csak (rossz) hírből hallott a CMS-ekről), még akkor is, ha tudom, hogy teljesítmény terén tényleg sokszor nagyon gyatra tud lenni.A korrekciók oka nálam igazából csak az, hogy míg aktívan CMS-eztem, akkor rá kellett jönnöm, hogy mivel a CMS-ek népszerűek, nagy közösség áll mögöttük, meg relatíve egyszerű is elindulni az úton velük (aztán bizonyos esetekben annál nehezebb tovább is haladni), ezért a nagy merítésből sok is a kókler, van jópár modul, amit sokan használnak, mégis rettentő szarul vannak megírva, erőforrás-pazarlóak, a lehető legrosszabb teljesítményt nyújtó adatbázis-kezelési technikákat alkalmazzák (a "kedvencem": a PHP-vel szerializált óriásadathalom egyben történő beerőltetése egy darab mezőbe, a széjjelrobbbantandó stringek beerőltetése egy darab mezőbe (kettősponttal, pipe-pal, pontosvesszővel, tökömtudjamivel "elválasztott" retkek)), így a CMS alapvető működéséből (ti. hogy épp a rugalmasság biztosítása érdekében lényegében a legtöbb dolgot adatbázisban tároljuk, illetve onnan kérjük le; moduláris felépítésből következő bizonyos redundáns kódrészletek, stb.) következő teljesítményromlást még jóval tovább rontják bizonyos emberkék, így nagy általánosságban nem túl jó a CMS-ek renoméja. (Hozzáteszem, pl. a Drupal OOP-vel kevert procedurális kódja sem túl nyerő, bár sztem talán a PHP-s legnépszerűbbek közül még ez a legrugalmasabb CMS.)
Pedig sokszor a CMS maga az API-ján keresztül jóval igényesebb módszereket is kínálna, mint ahogy azt sok fejlesztő kihasználja. És ez gáz. A korábbi, JS-kódokat az adatbázisba benyomorító példám is erre vonatkozott: lehet ezt csinálni tisztességesen is, úgy, hogy szépen egy fájlt szerkeszt a fejlesztő, ahogy illik, a CMS egyetlen dolga pedig csupán ezt a fájlelérési utat betenni a script tag src-attribútumába, majd a kliensoldali kódot a moduláris kódszervezési minta alapján betölteni, meg lehet csinálni gusztustalanul is, hogy a PHP-kódba valahol be van nyomorítva az inline JS-kód egy stringként.
Szóval nincs így szükségképp eleve a CMS-ben, ennyit akartam korrigálni ezzel a hosszas felvezetéssel, korán van még.Hát így a kód nem hangzik rosszul, bár maradhatott volna a kolléga, hogy vele tudjuk megbeszélni a dolgot, ha már tanulni akar belőle.
(#4370) Jim-Y :
A Crockford-idézetre:
"This feature was added for people who were beginners, so if you want to look like a beginner, then leave the semicolons out."
Hmm, hát igen, de sosem értettem, hogy miért kell egy nyelvet eleve úgy megalkotni, hogy az amatőrök is felszabadultan tákolhassanak, miért nem kötelező az utasítás végén eleve a pontosvessző? Ha valamit a fejlesztő szarul csinál, rá kell vágni a kezére, ez a toleránsnak tűnni akaró szemlélet elég káros lehet.(#4371) :
Ez a Smarty projekt alapvetően jó ötletnek tűnik, de tényleg kéne pár ember, aki ezt update-elgeti, nehogy elhaljon a dolog.
Megcsillagoztam GitHubon a repót. -
Sk8erPeter
nagyúr
válasz
martonx #4393 üzenetére
Hmm, hát nem tudom sajnos, mi volt az eredeti kódban, így nem tudom, mit csinált rosszul, de mondjuk így segíteni is nehéz az illetőnek, hogy törölte.
Ja, a CMS-es mondatod akkor valóban félreérthető volt, azt hittem, arra gondolsz, amikor egy magát fejlesztőnek tartó valaki behányja inline módon az adatbázisba a kódokat, azt meg ki kell túrni, berakni a HTML-kimenetbe, script-tagek közé, természetesen az inline-sága miatt ez(ek) a kódrészlet(ek) nem is cache-elhető(ek), így a betöltést értelemszerűen lassítja, mivel a böngésző gyorsítótárazását sem tudja kihasználni. Lett volna alapja egyébként, ha erre gondolsz, sajnos láttam már pár ilyen módon megírt, hányadék modult. Miközben persze már a modul írásakor is régen voltak olyan módszerek, amikkel tisztességesen be lehet tölteni a kódokat modulárisan, de fájlokból...
Az az ilyen "nekiesek, hadd szóljon" típusú fejlesztő.
(Aki nem hajlandó eltölteni plusz egy órát a dokumentáció/hasznos tutorialok olvasgatásával, mert haladni akar, cserébe csinál egy kupac szart.)
-
Sk8erPeter
nagyúr
válasz
martonx #4391 üzenetére
Pedig annyiból nem mondott hülyeséget, hogy valóban megakadályozhatja egy form elküldését, ha mondjuk a submit buttonre (buttonökre) van kötve az event handler, és hív egy event.preventDefault()-ot; ugyanígy a linkre is igaz. Mondjuk annyiból nem volt pontos a meghatározása, hogy a metódushívás inkább az eventet érvényteleníti/törli, DE az esemény további felszivárgását nem akadályozza meg. Szóval tulajdonképpen az alapértelmezett viselkedést lehet vele módosítani, úgyhogy nagyon nem lőtt mellé. Vagy csak most hirtelen nekem nem ugrik be, mire gondoltál.
(#4372) Zedz :
Szívesen ránéztem volna, de törölted a kódodat pastebinről, úgy meg nehéz.(#4381) PumpkinSeed :
"Azért lokálisan tesztelek webszerver nélkül, mert órai feladatra készül és ott nem szabad olyan kódot alkotni ami webszerver nélkül nem működik"
Jézusom, milyen degenerált módszer. Ahelyett, hogy ahhoz szoktatnának, amit az ember élesben és a gyakorlatban használ... Azért ha webfejlesztésről van szó, talán nem a lokális, webszerver nélküli tesztelést kellene erőltetni. Kíváncsi lennék, mégis mi az oka, hogy így találták ki a házit nektek...
Amúgy tényleg elkeserítő, hogy csomó visszajelzés alapján azt hallani, hogy ezek a tanfolyamok vagy elavultak, vagy valami kicsavart gondolkodás mentén elcseszik az oktatás módját.(#4388) martonx :
"Simán lehet, hogy a szerver oldalon van valami elcseszve (mondjuk a legtriviálisabb dolgokat is sql-ből kérdezgeti le, erre nagyon jó tipikus rossz példa a cms-ek működése), [...]"
Mondjuk a CMS-nél is egy normális fejlesztő JavaScript-fájlokat szerkesztget, nem inline kódokat tol fel az adatbázisba, úgyhogy szerintem ez rossz példa, mert a fejlesztői gányolásokért nem a CMS a hibás.(Bár való igaz, hogy sokszor lehetőséget is ad rá.)
Félreértés ne essék, tény, hogy a CMS sok mindent tölt be adatbázisból, ahogy ezt sok topicban átrágtuk, de a CMS-eknél van JS-fájlok betöltéséért felelős metódus, vagy épp a modul valamely fájljában is lehet deklarálni, hogy mely JS-fájlokra lesz valószínűleg szükség. -
Sk8erPeter
nagyúr
Azért azt nem árt kihangsúlyozni, hogy lokálisan nem működik...
De nem is így szokás tesztelni fejlesztéskor, úgyhogy nem hiszem, hogy ez releváns kellene, hogy legyen (egy helyi webszervert feltenni pár kattintás, akár IIS-ről, akár Apache-ról van szó).
A második megoldás is JÓ, sőt, akár jobb is lehet! Annyiban egyszerűsít a dolgokon, hogy az aktuálisan használt protokollt fogja használni a betöltött URL-eknél is, akár pl. http-ről, akár https-ről van szó, nem kell bedrótoznod a használt protokollt! (Létezik olyan oldal, ami elérhető http-n és https-en is. Ezzel a módszerrel nem kell kutyulni a használt protokollokat.)Persze nem meglepő módon van szócikk erről is stackoverflow.com-on:
http://stackoverflow.com/questions/9646407/two-forward-slashes-in-a-url-src-href-attribute -
Sk8erPeter
nagyúr
"By the way ... [link]"
Fasza, és tényleg működik:
https://www.jetbrains.com/student/
Megkaptam a visszaigazoló e-mailt @hszk.bme.hu-s címmel regisztrálva, ez a "JetBrains Product Pack for Students" licenc 2015 szeptemberéig érvényes ezekre a termékekre:
IntelliJ IDEA
ReSharper
AppCode
PhpStorm
PyCharm
RubyMine
WebStorm
dotCover
dotTrace
dotMemoryEz így korrekt. Na, ha már ilyen rendesek voltak, adok még egy esélyt majd a WebStormnak/PHPStormnak.
A ReSharper meg Visual Studio-ban C#-kódoláshoz állítólag komoly mankó tud lenni.
-
Sk8erPeter
nagyúr
válasz
Speeedfire #4338 üzenetére
Nem kötöttem beléd, csak nem értettem, hogy értetted azt, hogy nagyon jónak tűnik a plain JS, úgyhogy ezért visszakérdeztem.
-
Sk8erPeter
nagyúr
válasz
honda 1993 #4336 üzenetére
Az egy JavaScript-kód.
[link], utolsó bekezdés, nehogy elkezdj rajta agyalni, tök felesleges.
-
Sk8erPeter
nagyúr
válasz
Speeedfire #4334 üzenetére
"Ez a planjs nagyon jónak tűnik.
"
Mármint úgy érted, tetszik a plain JS?(#4316) Jim-Y, (#4319) dqdb :
Jól hangzik, majd kipróbálom, kösz.dqdb, ezt mennyi idő alatt sikerült összehozni?
-
Sk8erPeter
nagyúr
Nem úgy "okosítod fel" a NetBeans-t, hogy "valahogy" működjön JS-fejlesztésre, hanem faszán működik JavaScripthez is. Hidd el, nem mondanám, ha nem használtam volna már sok-sok órát. Debuggoltam is már benne JavaScript-kódot, ehhez kapcsolódót itt írtam:
http://prohardver.hu/tema/weblap_keszites/hsz_10596-10596.html
Az Eclipse-et én sem szeretem, nem találom kézenfekvőnek, csúnyának is találom (mindig meglepődöm, amikor valaki Eclipse-kedvelőként a NetBeans-re mondja ugyanezt), úgyhogy azt alapvetően én sem annyira szeretem használni, pedig nagyon komoly pluginek vannak hozzá, és sokszor bizonyos projektekhez vagy bizonyos munkahelyeken kikerülhetetlen. (Egyébként engem a különutas megoldásai is idegesítenek, pl. ha 3 IDE-ben megegyezik egy bizonyos billentyűkombináció, akkor az tuti, hogy az Eclipse-ben defaultból valami tök más. De ez csak egy példa, mert ez még könnyen átállítható, de sok helyen az elrendezése is valahogy "olyan Eclipse-es".
)
A WebStormot (vagy PHPStormot) elég rövid ideig próbálgattam, jónak tűnt, emlékeim szerint tetszetős volt a felülete, de nem sikerült rájönnöm, hogy miért is érné meg ezért fizetnem, amikor a NetBeans számomra ugyanezeket tudja. Félreértés ne essék, nem akarok senkit lebeszélni a WebStormról (vagy PHPStormról), de szerintem nem biztos, hogy azonnal rohanni kell a pénztárhoz, ha van ingyenes alternatíva is. -
Sk8erPeter
nagyúr
Szerencsére ezeket mind tudja a NetBeans is.
Git-, SVN-támogatás, meg sok egyéb is lehet egy-egy plugin formájában, ha már az egész moduláris. Érdemes a Git toolbart is felrakni hozzá.
Nekem az a bajom a WebStormmal, hogy nem ingyenes. Fizetős, miközben ezeket ingyen tudja a NetBeans és valószínűleg az Eclipse is (csak plugineket kell felrakni hozzá, ami mondjuk a WebStormban alapból benne van), plusz mint a Wikipédiás lapról kiderül, ez a program is Javában íródott, tehát a JVM overheadje ennél is ugyanúgy jelen van, így nem látom, mit tudunk nyerni ezzel a fejlesztőkörnyezettel a másik kettővel szemben. Persze ettől még elhiszem, hogy kényelmes, biztos a különbségek fejlesztés közben derülnek ki. Sokan szeretik a WebStormot JavaScript-fejlesztésre, de érdekelne, hogy milyen pluszt tud az ingyenes alternatívákhoz képest, mert én még nem fedeztem fel olyat, ami ne lehetne pótolható pluginnel NetBeans-ben és Eclipse-ben (én az előbbit szoktam használni gyakrabban).
-
Sk8erPeter
nagyúr
válasz
honda 1993 #4299 üzenetére
Nem jó buli, sőt! Mindenki sokkal jobban élvezi, ha olyan kérdést tesz fel valaki, amiből lejön, hogy érdemben próbálkozott, nem csak szart bele, aztán várja, hogy mások a saját szabadidejüket erre áldozva majd szépen elmagyarázzák az illetőnek szájbarágósan a dolgokat (mert hát úgy nyilván sokkal kényelmesebb). Nálad a soktopicos tevékenységed alapján az látszik, hogy az első akadálynál feladod, és rohansz azonnal a fórumra segítségért. Így nem lehet fejlődni!
-
Sk8erPeter
nagyúr
válasz
honda 1993 #4294 üzenetére
"sajnos az ismerosom aki ehez ert is valamennyire, legalabb annyira idiota modon es erthetetlenul magyarazza amit kerdezek,es nem is a kerdesemre valaszol"
Az alapján, amiket eddig válaszoltál másik topicokban a segítő jellegű hozzászólásokra, valahogy kételkedve állok ahhoz, hogy az ismerősöd magyarázna "idióta módon és érthetetlenül"... egyébként kérdezni is tudni kell.Csak kíváncsiságból kérdezem: odáig megvan, hogy létezik egy úgynevezett <script> tag?
Szerk.:
Látom közben kaptál szájbarágós választ is, a francba, így még picit sem sikerült gondolkodásra és némi egyéni utánanézésre sarkallnunk...
Azért az kemény, ha ezen akadtál el, BÁRMELYIK említésre méltó JavaScript-segédletben megtaláltad volna ezt a választ. Gondolkozz el azon, amit Jim-Y írt.(#4295) Jim-Y: uff, jól beszéltél!
-
Sk8erPeter
nagyúr
válasz
kemkriszt98 #4266 üzenetére
"Nanananana..." Nem lehet, hogy egy kissé topicot tévesztettél?
-
Sk8erPeter
nagyúr
válasz
martonx #4264 üzenetére
Én sem szántam időt rá, hogy nyomozzak, ettől még tény, hogy a z koordináta irányába nincs kiterjedése a kockának, és valahogy nem lep meg, hogy a népszerű böngészők közül csak IE11-nél fordul elő a dolog.
Itt is ugyanaz a probléma Internet Explorernél, többinél nem (ezek mind csak 5 másodperc guglizás alapján jöttek ki, de egyiknél sem volt kedvem egyelőre nézegetni a kódot egy minimális rápillantást leszámítva):
http://css-tricks.com/creating-a-3d-cube-image-gallery/Majd lehet, hogy meló után ránézek, mi van a kódban, hogy mégis pontosan mitől nem működik. De nem biztos, hogy lesz kedvem.
Ez viszont működik IE-n is:
http://codepen.io/thebabydino/pen/bdvya -
Sk8erPeter
nagyúr
válasz
Sk8erPeter #4262 üzenetére
Egyébként nyilván egészen megdöbbentő lenne, ha ez IE11-ben már működne. Mondom én, hogy néha azt gondolom, az IE már böngészőnek számít, de aztán mindig rá kell jönnöm, hogy nem.
-
Sk8erPeter
nagyúr
válasz
kemkriszt98 #4261 üzenetére
-
Sk8erPeter
nagyúr
Hát végül is ötletadónak nem rossz, de szerintem értelmesebb lenne akkor már inkább más nevet adni az ilyen custom kódoknak, ha már az eredeti működést elcseszi.
Mármint ha kiemeljük a kontextusból az event handlert, és fogalmunk sincs róla, hogy ez úgy készült, hogy át lett definiálva a beépített addEventListener, mert mondjuk más fejlesztők vagyunk, mint aki ezt készítette. Szóval ez akkor lenne poén, ha az eredeti szintaktikával is helyesen működne (értsd: az event handler az eventet kapná első argumentumként, ahogy eredetileg is van, nem az event.targetet), és így "hordozható" lenne. Na mindegy, amúgy jópofaszság.
Fú de sokat pofáztam, szóval így jobb sztem akkó' má':
http://jsfiddle.net/LLkV4/2/
De nem is tudom, minek analizáltam ennyit a dolgot, fáradt vagyok. -
Sk8erPeter
nagyúr
válasz
sztanozs #4236 üzenetére
"Bár igazából, ha a JS-nek van joga írni a lokális drájvra, akkor fizikailag is képes kiírni a módosított HTML-t, vagy akár neten átküldeni."
Kérlek mutass a kiemelt részre példát korunk népszerű böngészőiben futó, kliensoldali JavaScript-kóddal, az IE régi ActiveX-es szutykai nélkül, hogy hogyan oldanád meg ezt a feladatot (felőlem használhatsz library-t is)! Tényleg kíváncsi lennék rá...
Új hozzászólás Aktív témák
Hirdetés
- Asztali PC , i7 11700KF , RTX 3070 Ti , 32GB DDR4 , 512GB NVME , 2TB HDD
- Asztali PC , R5 5500 , RX 5700 XT , 16GB RAM , 256GB NVME , 1TB HDD
- ASUS TUF Gaming F15 gamer laptop
- X1 Yoga 8th 2-in-1 14" FHD+ IPS érintő i5-1335U 16GB 256GB NVMe ujjolv IR kam aktív toll gar
- Lenovo / SK Hynix 512GB M.2 NVME SSD 0 perces
- iKing.Hu - Apple iPhone 13 Pro Max - Graphite - Használt, újszerű
- Beszámítás! Apple Mac mini 2023 M2 Pro 16GB 512GB SSD számítógép garanciával, hibátlan működéssel
- Dell USB-C, Thunderbolt 3, TB3, TB4 dokkolók (K20A) WD19TB/ WD19TBS/ WD22TB4, (K16A) TB16/ TB18DC
- REFURBISHED - DELL Thunderbolt Dock WD19TBS docking station (210-AZBV)
- Gombászkönyvek egyben
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest