- Sarokba szorította a Huawei az Apple-t Kínában
- Kínos ügy lett az OpenAI Scarlett Johansson-botránya
- Windows 11
- Folyamatosan hazudott a bitcoin állítólagos feltalálója
- ASUS routerek
- Bittorrent topik
- A tüntetések ellenére is bővítheti német gyárát a Tesla
- Microsoft Excel topic
- YouTube
- Vodafone otthoni szolgáltatások (TV, internet, telefon)
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
Na, akkor öröm van.
Valahol a hivatalos doksiban is írják, de nézd meg, készítettem neked egy egyszerű példát, ahol szemléltetem, hogy is kell elképzelni a dolgot:http://jsbin.com/iqiput/1/edit
A 2-es és 4-es dobozok lettek pirosak. Pedig én az elején az 1-esnek is azt mondtam, hogy legyen piros. De itt még nincs renderelve a div, tehát hiába mondom, hogy az 1-es legyen piros, ha nincs még olyan elem az oldalon. A 2-es dobozt azért sikerült bepirosítani, mert a $(document).ready() eseménykezelőbe raktam, tehát azt mondtam, hogy akkor legyen piros, amikor kész van a doksi. A 4-es doboz szintén piros lett, és azért, mert azutánra raktam a pirosító kódot, ami után már szép sorban a 4-es doboz is megjelent az oldalon. Tehát azt mondhattam, hogy a 4-es doboz is legyen piros, mert már volt olyan elem az oldalon.
Sk8erPeter
-
biker
nagyúr
ugyanarra a keresésre a match-el 0,0097s míg like-al 0,198s
jól indexelve, sok oszlopra.
de a match nem túl jól keres szótöredékre, pl a forrasz nem ad találatot a forraszt szóra, kicsit furán keresElektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |
-
Sk8erPeter
nagyúr
Azért az 130 ezer rekordra elég jó eredmény.
A delay-re pedig itt egy megoldás:
http://stackoverflow.com/questions/1909441/jquery-keyup-delay/1909508#1909508
kínál egy hasznos plugint is:
https://github.com/dennyferra/TypeWatch
tetszetős!Sk8erPeter
-
biker
nagyúr
ja, ha elírom a kódot, persze hogy szar
<script>
$(document).ready(function() {
$('.error-top').animate({top:"0"}, 500);
});</script>
ezzel jelenik meg jól...Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |
-
-
trisztan94
őstag
rakd be a MessageBox meghívása elé:
ev.preventDefault();
ev.stopPropagation();Egyszerűsített példa. Ha a click eseményből kiveszed ezt a két sort, feladja a form-ot.
[ Szerkesztve ]
https://heureka-kreativ.hu
-
trisztan94
őstag
A callback minden gomb lenyomásakor lefut (ha escape-et nyomsz az szvsz a cancel-nek felel meg), ha jól tudom egy bool értékű változót ad vissza, tehát csekkolni kellene, hogy mi az értéke:
$('#confirm_msz').click(function (ev) {
ev.preventDefault();
ev.stopPropagation();
$.msgbox("Nem kéne átnézni az űrlapot elküldés előtt még egyszer? Vagy kétszer?", {
type: "confirm",
buttons: [{
type: "submit",
value: "Nem"
}, {
type: "cancel",
value: "De"
}, {
type: "cancel",
value: "Hogyne"
}]
},
function (result) {
if (result) {
$("#formID").submit();
}
});
});[ Szerkesztve ]
https://heureka-kreativ.hu
-
Karma
félisten
Természetesen lehetséges. Ebben a fiddle-ben megcsináltam, lásd a végén azt a pár sort, amit kiemeltem.
Annyi egyszerűsítést tettem, hogy a léptetés független a kattingatástól. Azt is meg lehetne csinálni, hogy az aktuális oldaltól folytatódjon, de akkor bele kéne nyúlni ebbe a takonyba.
[ Szerkesztve ]
“All nothings are not equal.”
-
Sk8erPeter
nagyúr
Na ne. Ez kőkemény. Ez a kód okádék, bár ettől függetlenül nem tudom, mi okozott gondot az "automatizálásán". Amúgy az ingyenes, akár alapos doksival ellátott sliderekből Dunát lehet rekeszteni (2 perc Google, és máris nem tudsz választani, hogy melyiket kéne, annyi van), biztos vagyok benne, hogy minimalisták is bőven vannak, ami picit indokolatlanná teszi az ilyesmivel való tökölést, az ilyen minőségű kódért viszont 5 korbácsütés járna, nem lóvé.
Sk8erPeter
-
martonx
veterán
Nem érted. Nem jquery-ileg rossz ez a kód, azzal - ugyan nem áll módunkban kipróbálni - de talán nincs baj.
A kód általánosságban egy okádék. var w??? WTF.
Bénák a funkciók nevei, funkció bemenő paraméterét úgy hívják, hogy n???
Cserébe valaki vette a fáradtságot, és teljesen feleslegesen kommentelte a szarját, ahelyett, hogy normális nevezéktant használt volna.
Tök mindegy, hogy milyen nyelven készül egy kód, legyen az php, c#, javascript (olyan nyelv, hogy jquery nincs ) ez a kód minősíthetetlen.Én kérek elnézést!
-
Sk8erPeter
nagyúr
"és sajnos annyira nem vagyok jquery imádó, hogy azt lássam, mitől hányadék a kód"
Nem értem igazán, hogy mi rajta a tudomány, ha bármilyen nyelvben szereztél már tapasztalatot, gyors átgörgetés után kapásból látható, hogy ez spagettikód. Már azokból a dolgokból is, amiket martonx előttem leírt.
Amúgy hogyhogy nálad a jQuery teljesen kimaradt? Úgy tudom, webfejlesztés a munkád.Késő van, úgyhogy nincs energiám összeszedni minden potenciális szempontot, de próbálok felsorolni pár dolgot, ami gáz a kódban így átpörgetés után:
- undorítóak a változónevek, seggbe kéne rúgni acélbetétes bakanccsal az összes olyan programozót, aki magát és másokat szopat egy-két karakteres változónevekkel. Ez három dologra utalhat, illetve azok egyvelegére: I.) szintet átlépő lustaság II.) kapkodás, III.) valami ostoba szövegszerkesztő használata
normális fejlesztőkörnyezet helyett, ami a keze alá dolgozik (és azért lusta leírni, mert nem egészíti ki neki a kódot a szerkesztő)
Könyörgöm, mi az, hogy if(n==i)?? Miért kell spórolni a karakterekkel?
- levegőben lóg az egész. Semmi egységes struktúra, itt csak eléggé egymástól függő, de "globális függvények" vannak, nincs objektum/prototípus-orientáltság vagy bármi ahhoz hasonló a kódban, egyszerűen nem tartoznak egybe a dolgok. Tartozzon egybe, legyen valami struktúra, az legyen érezhető, hogy ez egy dologhoz tartozik, nem pedig csak úgy be vannak dobálva függvények. Ha már ilyesmit készít, és jQuery, akkor ráadásul illik jQuery plugint készíteni ilyesmire. Még leírás is van róla a hivatalos oldalon:
http://learn.jquery.com/plugins/basic-plugin-creation/
- ha már az előző leírás szóba került, illik a library-nek/pluginnek a saját scope-jában tevékenykednie, nem szennyeznie a globális névteret. Bár ez még persze túlélhető.
- mivel nem az előzőek fényében lett megvalósítva, nem láncolhatók a hívások.
- egyszerűen nem lehet normálisan felparaméterezni az egészet. Nincsenek default opciók, inicializálásnál nem lehet átadni egy objektumot a felülbírálni kívánt paraméterekkel. Minden be van drótozva. Pl. idézek: w=694; //force to max size - hát miért pont 694 a max. size? Mi van, ha a megrendelő úgy dönt, hogy legyen picit átszabva itt-ott (és mondjuk még fizet is érte jó esetben)? Akkor majd lehet áttanulmányozni ennek a katyvasznak a belsejét, és kihámozni belőle valahogy a lényeget?
- ha már bedrótozás: MINDEN be van drótozva, a selectorok is. Ami nagyon gáz. Ismét előjön a szempont: mi van, ha valamiért meg akarjuk változtatni a classneveket? Tényleg át kell bogarászni az egész kódot, és mindenhol egyesével átírni? (Sajnos vannak idióta programozók, akik ezt elfogadhatónak tartják.) Ja, és mi van, ha te valamiért több slidert is el akarsz helyezni az oldalon, és az egyikre más opciókat akarsz érvényessé tenni? Erre nem válasz, hogy de úgyse akarok ilyet. (Az gondolom tiszta, hogy a beton rugalmasságával rendelkező kód mindig rossz.) Többek közt erre is való a pluginkészítés. Ha már jQuery, lehessen kihasználni annak képességeit.
- és a többi, asszem ideje aludni.Sk8erPeter
-
biker
nagyúr
jaj, mielőtt nekem estek, nem szólom én le a weblapgyáros embereket, csak épp engem nem motivál ez a része, hogy egész nap "mezei" weblapokat gyártsak épp a divatnak megfelelően, épp most parallax scroll, most meg reszponzív design, most a bootstrap a menő, most a FB, köszi, nem...
Lehet hogy egyszer megszorulok, és ezt csinálom én is, de egyelőre átadom a stafétát.
Még a végén én is eljutnék oda, mint az n31 ilyen ismerősöm, hogy elkezd magának gyártani weblap motort, me' az jobb mint a WP és a Joomla és a Drupal, me' mind szarElektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |
-
Sk8erPeter
nagyúr
"A benne lévő dolgok, amiket írsz, teljesen érthetők, szerintem a kollégának azért sikerült így, és nekem azért nem tűnt zavarónak pl a w=694 és társai, mert egyértelműen kötött designba készítette, ahol 694px a slider box mérete."
De az ilyen szintű bedrótozást semmi nem indokolja.
Itt olyan dolgokról beszélünk, amit 5 perc többletmunkával bele lehet rakni: default opciók, és a felülbírálható opciók lehetőségének kialakítása. Ilyenekre tengernyi példakód található neten, például a korábban linkelt tutorialban egy egész konkrét és egyszerű példa van:"Accepting Options
As your plugins get more and more complex, it's a good idea to make your plugin customizable by accepting options. The easiest way to do this, especially if there are lots of options, is with an object literal. Let's change our greenify plugin to accept some options.(function ( $ ) {
$.fn.greenify = function( options ) {
// This is the easiest way to have default options.
var settings = $.extend({
// These are the defaults.
color: "#556b2f",
backgroundColor: "white"
}, options );
// Greenify the collection based on the settings variable.
return this.css({
color: settings.color,
backgroundColor: settings.backgroundColor
});
};
}( jQuery ));Example usage:
$( "div" ).greenify({
color: "orange"
});The default value for color of #556b2f gets overridden by $.extend() to be orange."
vagy akár bele lehet nézni a jQuery source code-jába, stb.
"Nem ez a főállásom, és nem is "weblapos" vagyok, aki egész nap weblapokat gyárt "húszezeré' megcsinálom" verzióban. Az csak a nagyon uborkaszezonban, de akkor is inkább készen megveszem 50USD-ért themeforesten.
Én egyedi alkalmazásokat fejlesztek inkább weben használható kivitelben, hogy a T. usernek ne legyen gépfüggősége. beléptető/tagnyilvántartó rendszer, crm rendszer, most épp egy szexhirdetős oldalt annak minden szépségével és gondjával,vés hasonlók. De ezeknél a legkevesebb a kinézet, a csicsa, az adattartalom a lényeg..."
Ez a "húszezeré megcsinálom" példa nem értem, hogy jött ide, az egyedi webalkalmazások fejlesztése meg aztán végképp nem értem, miért is zárná ki a JavaScript+jQuery-tudást. Éppen ellenkezőleg. Amit itt írtál, ott is "mezei" weblapokról beszélsz, mintha a kliensoldali kódolás valami vérpistis dolog lenne - pedig egyedi webalkalmazásokhoz, akár üzleti szektorban is NAGYON erősen kellhet a kliensoldali programozás, így a jQuery is. Manapság pont minden arrafelé halad, hogy a kliensoldali rész is faszán el legyen készítve, AJAX-os kérések történjenek a háttérben, és így tovább, és az, aki ezeknek a fejlesztését végzi, pont nem jó, ha egy vérpisti, ehhez is szakmai tudás kell. Hogy jön ide a csicsa? Nem kell összekeverni a JavaScript-programozást a dizájnerkedéssel, meg a sitebuilddel, van ilyen része is, meg van más része is.
Amúgy azt magyarázd már el nekem plíz, hogy mit jelent az, hogy "az adattartalom a lényeg"? Ezt próbáltam értelmezni, de valahogy nem sikerült.Sk8erPeter
-
Sk8erPeter
nagyúr
Karma igen jól és tömören összefoglalta a lényeget, ami miatt finoman szólva nehezen elfogadható ez a megoldás.
De a kód több sebből is vérzik, ezt mindjárt.Egyébként a PHP-kód vonatkozó részénél, amikor macskakaparásos idézőjelet kell használnod egy stringben, szerintem nyugodtan kihasználhatnád, hogy a stringeket aposztróffal is írhatod, és úgy nincs változó-behelyettesítés sem, így nem kell escape-elni az idézőjelet sem, tehát:
$termek_jq.="\"".$query_tomb['termek_ean']."\" : \"".$query_tomb['termek_nev'].": ".$query_tomb['termek_ar']."Ft / db \" , ";
HELYETT lehetne ez is:
$termek_jq.= '"'. $query_tomb['termek_ean'] .'" : "'. $query_tomb['termek_nev']. ': '. $query_tomb['termek_ar']. 'Ft/db " , ';
Sztem jobban néz ki. (Például ha HTML-kódot kell neadjisten generálni, annál is az attribútumokat ugye idézőjellel szokás írni, ott is elkerülhető az állandó escape-elgetés így.)
Na de a kód tartalma már annál kevésbé néz ki jól. Erről megint mindjárt.Amúgy én PHP-kódnál és lehetőleg más nyelvekben is inkább kerülni szoktam a stringben "elrejtett" változóneveket (amik behelyettesítődnek), ezzel persze biztos vannak, akik nem értenek egyet, de engem kifejezetten zavar, ha nem látszik kapásból a kódból, hogy oda bizony egy "kívülről hozzácsapott" változó értéke kerül - még akkor is, ha az IDE highlightolja az adott stringben a megfelelő részt. Nem beszélve arról, hogy tömbindexeknél vagy objektumok attribútum/metódushívás-eléréseinél a stringben így még bűvészkedni is kell, hogy az valóban behelyettesítődjön. Bár bevallom, pl. shell scripteknél sokszor kivételt teszek.
Na, szóval a kód érdemi részére rátérve:
- Eleve rossz, hogy PHP-vel generálsz komplett JS-kódot, mert ott biztos, hogy valami koncepcionális hiba van, és lehetne sokkal általánosabban.
- Ha már ilyen megoldást választottál, és generálsz mindent, miért drótozod be az elemek számát a ciklusban? Lásd $i<16 --> miért pont 16? Miért nem egy változó van ott? Ha egyébként JS-kódbeli ciklusban szerepelne, az is rossz lenne, mert itt egy ismeretlen nagyságú valaminek a kalkulált hossza kellene, hogy szerepeljen, nem egy konkrét, bedrótozott szám. Ha valami be van drótozva, akkor ott gondolkodni kell, hogy miért is van az ott bedrótozva. Szóval most igazából elkövetted pont azt a hibát, amiről a korábbiakban beszélgettünk.
- Minden egyes termékazonosítóhoz legenerálsz egy-egy külön anonim event handlert. Minek? Meg lehetne oldani az egészet class-szal (class-okkal), és mindegyikhez egy darab általános event handler tartozhatna. A kódod semmi olyat nem tartalmaz, amit ne lehetne egy ilyen eseménykezelővel megoldani.
Meg amúgy a kimeneti, legenerált JS-kódod tele lesz var value1, var value2, ... var value15 jellegű változókkal, ami gondolom nem kell mondani, hogy igen csúf.
(Amúgy még így pluszban nem tudom, mennyire jó ötlet, hogy mindig hozzáfűzögeted a #bufe_uzenet elem tartalmához az aktuálisan becsippantott kódot. Érdekel valakit az előző akárhány becsippantott elem? Mert ha igen, akkor is talán mehetne egy kinyitható, logolós részbe, mert így ránézésre zavaró lehet, hogy nem egyértelmű, az adott pillanatban mit csippantott be valaki.)Szóval a kérdésre válaszolva ja, elég gány, bocsi.
(#3003) Karma :
"Egyvalamivel egészíteném ki. A pluginba szervezésnek lenne még egy kézzel fogható előnye is: ebben a formában csak egy slider lehet az oldalon, egy helyes megoldással meg akármennyi, függetlenül a másiktól."
Jaja, egyetértek. De igazából ez benne volt az előzőben, legalábbis erre akartam utalni azzal a résszel, hogy "mi van, ha te valamiért több slidert is el akarsz helyezni az oldalon, és az egyikre más opciókat akarsz érvényessé tenni? Erre nem válasz, hogy de úgyse akarok ilyet." Meg hogy miért is gáz, hogy a selectorok is be vannak drótozva. Persze úgy még egyértelműbb, ahogy Te írtad.[ Szerkesztve ]
Sk8erPeter
-
martonx
veterán
"Van 15 input type=text mező, termek_ean_1, termek_ean_2 ..... termek_ean_15
Ha az ezek akármelyikébe beírt eseményt akarom figyelni, akkor kell egy onChange(#termek_ean1).... 15-ig esemény nem? Akkor 15x ki kell írni, vagy van rá jobb megoldás, hogy tudjam, a mondjuk 8-as mezőbe épp beírtak valamit, és ha igen, akkor írjunk ki valamit a lapra?
Ha van, mi az?"Hehe, erre jók a classok és az event.target Ez spéci jquery tudás lenne?
Szerk: ésez a válasz a legutolsó kérdésedre is
[ Szerkesztve ]
Én kérek elnézést!
-
Jim-Y
veterán
Ez a kód ... O.O
Csak az első sort hagytam benne, mert csak azt volt türelmem kijavítani. Szinte csak hiba volt benne.
Meg ezek a magyar nevek ..keverve angol nevekkel, fő a konzisztencia.
Nem is tudtam hogy elnevezni a változókat, mert annyira értelmetlennek találtam a példát, azért próbálkoztamMi lenne, ha leírnád, hogy mit szeretnél elérni a programmal, és segítenénk legalább elméletben, hogy hogyan kéne nekifogni?!
Üdv
megj: elsőre amikor megnyitottam a példát nem hittem a szememnek
[ Szerkesztve ]
-
Jim-Y
veterán
Szia.
Nem megbántani akartalak, csak szerintem rossz stílusban írtad meg a kódot. Miért?
- quotation mark? [link] [link] [link] Tehát nem arról lenne szó, hogy invalid lenne tőle a kód, de "highly unrecommended". Egyrészt olvashatatlan is lesz tőle a kód, másrészt sok IDE-ben elrontja a syntax highlight-ot, harmadrészt a stackoverflow-s linkben is említett class hibákhoz vezethet. Nem is értem, hogy miért ne tenné valaki " " közé az értéket. A style guidok is elég egyértelműek ezen kérdést illetően: [link]
- inline event handlers? Ez sem ajánlott. Vannak hátulütői. Ezekről itt olvashatsz. [link] [link] Másrészt inline ev.handlerekkel csak egy handler-t tudsz definiálni egy eventhez.
Pszeudokód:
node.onclick = alert(1);
node.onclick = alert(2);A click eseményre csak 2-t fog alertelni, mert a második definíció felülírja az elsőt.
- self-closing tags? Ezt be kell látnom lehet, hogy rosszul tudtam. Én valamiért úgy emlékeztem, hogy az újabb html specifikációkban ezek elengedhetetlenek. Pl <br> nem helyes, csak <br />. Ezt lehet rosszul tudtam.
- szerintem egységesen magyar, hol keveredik angollal? Ez már szőrszálhasogatás.. felőlem mindenki olyan nyelven írja, ahogy akarja, tényleg
disableEnterKey(event)
value1 ... value12
De a nagyja tényleg magyar. Én csak simán elszoktam már tőle Főleg ha az összes API angolul van, akkor nem értem mi értelme magyarul írni. De ez egyéni szoc. problem. -
Sk8erPeter
nagyúr
"a " " jelet használni annyiból kedvezőbb nekem, hogy egy $valami behelyettesítéséhez nem kell azonnal '.$valami'. írni, mint ' ' esetén"
Ja, de sztem amúgy sem olyan jó ötlet a stringbe rakni a változót, én jobb' szeretem konkatenálni - Te is ezt tetted, szóval itt pont nem használtad ki a változó-behelyettesítést. Amúgy tömböt is lehet akár stringbe belerakni, bár sztem rettentő ocsmány:
$termek_jq.="\"{$query_tomb['termek_ean']}"\" : \"{$query_tomb['termek_nev']}: {$query_tomb['termek_ar']} Ft / db \" , ";Erre írtam a korábbit, hogy szerintem nem jó gyakorlat, de ízlések és pofonok. Meg ez talán a leglényegtelenebb rész, már eleve ott kezdődik a para, hogy PHP-vel van legenerálva a komplett JS-kód.
"Ha az ezek akármelyikébe beírt eseményt akarom figyelni, akkor kell egy onChange(#termek_ean1).... 15-ig esemény nem? Akkor 15x ki kell írni, vagy van rá jobb megoldás, hogy tudjam, a mondjuk 8-as mezőbe épp beírtak valamit, és ha igen, akkor írjunk ki valamit a lapra?"
Hogyne lenne... Igazából pontosan erről beszéltem korábban, előtte is leírtam az egyik alternatív megoldást, idézem magam:
"Meg lehetne oldani az egészet class-szal (class-okkal), és mindegyikhez egy darab általános event handler tartozhatna. A kódod semmi olyat nem tartalmaz, amit ne lehetne egy ilyen eseménykezelővel megoldani."
Tehát még egyszer: EGY darab event handlerre van szükséged, nem többre. Fúú, de jó, most látom, közben Jim-Y megmutatta, miről beszélek, így nem kell annyit hablatyolnom megint. Köszi, Jim-Y.
Amúgy vannak a HTML5-ös data-* attribútumok is, amelyek lehetővé teszik, hogy adott elemekhez egyéb információt is rögzíts, ezeket lekérni jQuery-vel nagyon egyszerű, de ez csak mellékszál volt, mint látható a példából, nincs rá szükséged."»» - Minden egyes termékazonosítóhoz legenerálsz egy-egy külön anonim event handlert. Minek?
Nem, a beviteli mezőkhöz írok ilyet, a termék azonosítók (2-300 vonalkód) a tömbben vannak, amiknek a key/value párját keresem a onChange eseményre"
DE! Akkor még egyszer elmondom: minden egyes termékazonosítóhoz legenerálsz egy-egy külön anonim event handlert. Nézd már meg a kódodat, amit belinkeltél, pontosan azt csinálod benne, amiről beszéltem.
Vágod, ott vannak azok a csúnya külön-külön kis .change( function(){ ... } ) kódocskák, azokból van jópár. Ha lenne száz terméked, akkor száz ilyet generálnál le?
Korábban erre mondtam, hogy általánosságban kell gondolkozni, úgy kell megtervezni, hogy számítasz egy rendszer bővítésére. Nem azt mondod, hogy 15 van, annyi is marad örökre, aztán ez a kód jó lesz majd vidékre.
Hozzáteszem, szerintem ez nem is tartozik a kliensoldalra, hogy az oldal HTML-kimenetébe be legyenek okádva a termékkód-termékadat párosítások."Igen, érdekli. Így kérte"
Hát jó, bár én ezt lehet, hogy egy külön dobozkába, vagy legalábbis valahogy elválasztva raknám, history-szerűen, vagy akkor már prependelném, nem appendelném, de ez aztán már abszolút más lapra tartozik."A php ciklus pont amúgy ezt generálja le"
Nem tudom, feltűnt-e, de korábban pont azt fejtegettem, milyen kód fog legenerálódni, szóval hidd el, értelmeztem a látottakat, és pontosan tudom, mi fog legenerálódni, nem túl összetett a kódrészlet, amit mutattál."Na egy ilyet hogy lehet akkor szebben, olvashatóbban megírni, azon kívül, hogy a 15 elem kérdést kirakom külön változóba, hogy átírhassam bármikor 35-re mondjuk"
Ezek szerint ez sem jött át: feltételezem, vagy adatbázisból szeded ezeket az adatokat, amiket legenerálsz, vagy beolvastad fájlból, vagy tököm tudja, mindenesetre ezeket bele tudod tömködni egy tömbbe. A tömbnek meg ugyebár van egy hossza. A tömb hosszát meg pontosan felhasználhatnád annál az ominózus ciklusnál, amennyiben a borzalmas gányolós kódnál maradunk. Akkor máris legalább egy fokkal rugalmasabb lenne a tákolmány. Mondjuk még stringbe is lehetne passzírozni ezt a generált kódot, ahogy fetch-eled adatbázisból. De inkább nem adok ötleteket további gányoláshoz.
Szóval ezeket kerüld. És akkor még egyszer: egy ciklusnál se legyen bedrótozva annak fejlécébe, hogy meddig mehet, csak kivételes esetekben, amikor garantáltan nem lesz valamiből több/kevesebb.(#3017) :
"Biztos én gondolom rosszul hogy egy adott text mezőbe bevitt adatot megkeresni id kell és nem class"
Ahogy mondod, te gondolod rosszul.
Ha rugalmas megoldást akarsz, nem id-zni kell.A jsFiddle-re felrakott kód így még durvább, mint amiről korábban beszéltünk.
A HTML-részre:
- illik az attribútumokhoz tartozó értékeket szépen idézőjelekbe rakni. Már az óvodában is így tanítják (jó lenne ), nem a 90-es években vagyunk.
- Fel nem fogom, minek kreáltál annyi darab inputpárt, ahány darab terméked van.
- Lehetőleg ne használj <br />-eket a távolságtartáshoz. Szépen használj CSS-t, margint, paddinget, attól függően, mire van épp szükség. Word-dokumentumot sem úgy szerkeszt az ember normális esetben, hogy püföli az Entert, aztán valahol már kábé jó lesz. Normális dokumentum úgy van megszerkesztve, hogy rugalmasan állíthatók a térközök, egy helyen, nem ötszáz helyen. Jelen esetre értsd: ha szeretnéd kisebbre venni a távolságot, akkor normális esetben csak a CSS-kódban átírsz egy értéket, nem kell a HTML-kódhoz nyúlnod, és tippelgetned, hogy kb. hány sortörést kéne oda berakni vagy épp onnan kiszedni.
- Sajnos behánytad a HTML-kódba a JavaScript-kódokat is, inline attribútumokba, konkrétan itt számtalan onKeyPress-értékként adtad meg, mi is történjen a keypress event során. Mi van, ha szeretnéd átnevezni a függvényt? Akkor tényleg 15 helyen meg kell változtatni? Ha JS-kód írásáról van szó, akkor miért kell folyton buzerálni a HTML-kódot is? A különböző célra szolgáló nyelvek szépen legyenek elválasztva egymástól. Ez pontosan ugyanolyan ronda, mintha a CSS-kódot behánynád style-attribútumokba. Az is kerülendő, ez is. Az oka igazából ugyanaz.
A JS-kódra: - hát ezt már kielemeztük elég rendesen, hogy mitől ronda, kaptál javaslatot is a szépítésre eleget.Persze inkább kérdezz, ha még valami nem tiszta.
(#3019) :
Szerintem Jim-Y is valami olyasmi hibákra gondolt, amiket fentebb írtam."egységesen magyar"
Hát ez itt a probléma. Legyen egységesen angol. A programozás nyelve angol, akár tetszik, akár nem. Hülyén néz ki, hogy össze-vissza keverednek a nyelvek egy kódban (én már a kommentárjaimat is igyekszem angolul írni, bár ebben lehet engedményt tenni), de ha ez nem lenne elég, van olyan, aki utálja az ilyen kódot, ez csapatmunkánál nem mindegy, és ha már csapatmunka, előállhat olyan helyzet, hogy kűűűűfőőőődi embernek kellene megmutatnod a kódodat, és az meg egy büdös szót nem ért belőle. Ha utóbbi nem állhat elő, akkor se keverd a nyelveket. (Ha svédül írnád, az is hülyén nézne ki, nehogy valami turulmagyar megsértődjön, hogy a magyarral bármi baj lenne. )(#3018) Jim-Y:
Kösz, sok időt megspóroltál nekem.
Szerk.:
+#3019: 22 másodperccel megelőztél."self-closing tags"
HTML5-ben pont nem kötelező. XML-ben és XHTML-ben természetesen az.
Egyébként én is ocsmánynak tartom, ha az <img .../>, <br />, <hr /> és hasonlók nincsenek lezárva. Én személy szerint sajnálom, hogy ez pont nem kötelező az ajánlás szerint.[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Te most a MIME type-ról beszélsz, ahhoz a jQuery-nek túl sok köze nincsen.
Itt van egy egész hosszú lista:
http://www.sitepoint.com/web-foundations/mime-types-complete-list/Egyébként JavaScripttel is tudod csekkolni a MIME type-ot egy adott fájltípusnál (ha felismerhető) anélkül, hogy feltöltenéd, egy egyszerű fájlválasztóval, meg némi plain JavaScript-kóddal:
http://stackoverflow.com/questions/4581308/jquery-or-javascript-get-mime-type-from-url/4581316#4581316
»» http://jsbin.com/akati3/2/edit?html,output
»» https://developer.mozilla.org/en-US/docs/Web/API/Blob/type[ Szerkesztve ]
Sk8erPeter
-
dqdb
nagyúr
Ha nemcsak MIME type (vagy esetleg kiterjesztés) alapján szeretnél dolgozni, hanem az adattartalom alapján szeretnéd kitalálni a konkrét fájltípust, akkor ...
... a szerveren valami libmagic/file alapú megoldást javasolnék, ha van Node.js, akkor kevesebb, ha nincsen, akkor több meló.
... a kliensen a Sk8erPeter által is linkelt Blob és TypedArray alapú megoldásokat. Ezeket nem túl bonyolult használni, csak fognod kell egy formátumleírást a megcélzott fájltípusokhoz, és pillanatok alatt össze lehet dobni egy alapfokú ellenőrzést az első néhány byte figyelésével. Pár képformátumhoz ezt dobtam össze korábban, itt kihasználtam, hogy Blink motor a megcélzott, így büntetlenül használhatom az API-kat, más böngészőnél valószínűleg kell polyfill hozzá.
tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek
-
martonx
veterán
Ezzel kicsit játszani kellene, de annak szerintem semmi akadálya nincs, hogy egy flag-el jelezd js oldalon, hogy engeded-e még a bevitelt.
Ettől kezdve pedig nincs más dolgod, mint egy settimeout-al 1 másodperc múlva átbillenteni a flag-et.
Persze adódik a kérdés, hogy és mikor álljon vissza ismét írhatóvá az input (azaz mikor álljon vissza a flag, és engedje újból a bevitelt)?
Nem tűnik bonyolultnak, amit akarsz, csak el kellene vele egy kicsit szórakozni, illetve szerintem nem is lesz túl felhasználóbarát.Sőt jobban belegondolva én úgy csinálnám, hogy elkezdeném mérni a bevitel idejét (mondjuk az onfocus-tól kezdve). Ha 1 másodperc alatt kész lett, akkor maradhat. Ha nem lett kész és még pötyög, akkor kuka.
Vagy nem is tudom, mi lenne a jó módszer megkülönböztetni a bemenő adatokat, hogy vonalkód olvasótól, vagy billentyűzettől származnak-e?Én kérek elnézést!
-
Sk8erPeter
nagyúr
"Charcodeban más a numpados 0 meg a felső számsoros"
Persze, más: a fölső számsor 0-ja 48-as kódú az ASCII-táblának megfelelően, a numpados 0 pedig 96-os (ASCII-tábla szerint ez a grave accent (`)). A fölső számsoros 0-t lenyomva magyar billentyűzetnél, de az operációs rendszerben US QWERTY layoutot alkalmazva (tehát ahol például problémát jelenthet a 0 és ö betűk közti különbség) 192 (À, Latin capital letter A with grave a Windows 1252 szerint) a keyCode/which (amúgy az eventhez tartozó charCode, keyCode és which deprecated az MDN szerint, nem tudom, miért, ha a code és key property-k jelenleg nem működnek, pontosabban a key csak Firefoxban azt hiszem, Blink-alapúakban még egyik sem).Viszont kérdés, hogy ez esetedben miért számít egyáltalán, ha úgyis barcode scannerrel viszitek fel az adatot?
"Ha be akarok lépni, angolra kell váltani a billt, hogy az ö helyén nulla legyen, ha nincs kéznél a numpados billentyűzetem"
Ezt viszont nem értettem. A tenkeyless keyboard esetén is a fölső számsorban is található egy 0 gomb, meg mivel magyar billentyűzetet használsz, egy ö betű is a számok mellett. Miért kell átváltani a kiosztást a tényleges 0 gomb megnyomása helyett?Amúgy ha érdekelnek a pontos keycode-ok csak úgy gyors ellenőrzésre, hogy épp mit nyomsz le, mi a keyCode-ja (még ha az deprecated is azóta ), valamikor nagyon régen csináltam még ilyet magamnak:
http://jsfiddle.net/Sk8erPeter/EAjYe/[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Ki tudnád próbálni a kedvemért egy normális böngészővel is, tehát ami nem Faszari? Csak úgy kíváncsiságból, mert még mindig nem értem, hogy az OSX ilyen retardált-degenerált, hogy egy normális keyboard layout beállítás is el van rontva, olyan almásan, vagy az Apple-nek csak a csodálatos büszkesége, a böngészőjük ilyen okos...
Köszi!"szarul beállított karakterkódolás és beviteli ellenőrzés mellett ez miatt nem tudod beütni a születési időd, vagy telefonszámod, akkor az van, hogy magyar bill esetén 1-9 és ö betűt tudsz bevinni"
Hogy jön ide a karakterkódolás?"Ha nincs ott a user mellett egy alapfokú IT ismeretekkel rendelkező ember, aki segít angol billre váltani, az megszívta. (ha a laptopján pl nincs numpad)."
Hát ez nekem még mindig nagyon furcsa. Ha magyarra van állítva operációs rendszer szintjén a kiosztás, és a magyar billentyűzeten a felhasználó a megfelelő gombot nyomja le, akkor a 0-nak kellene előjönnie a 0 lenyomására. Szóval ez nekem elég egyedinek tűnik, valami Apple-höz kötődőnek (mindegy, hogy csak Safari vagy már kapásból az OSX szintjén), ilyet legalábbis Windows-nál és Linuxnál nem tapasztaltam.
Amúgy ha már numpad van, akkor ott meg az a potenciális hibaforrás, ha a Num Lock ki van kapcsolva...Sk8erPeter
-
Sk8erPeter
nagyúr
Köszi a videót!
Igazából szórakoztató mindig szembesülni vele, hogy az Apple-höz kapcsolódó sznobizmus ellenére ilyen hibák tapasztalhatók. (Lásd a csodás böngészőjüket is.)
Szerintem ez tök abnormális viselkedés, és nem is igazán értem, hogy miért így működik OSX-en.Sk8erPeter
-
Sk8erPeter
nagyúr
Most bevallom, ezt a magyarázatot nem értettem, hogy "a billentyűzet kiosztás felülírást (nevezzük így) más rétegben alkalmazza, mint a win". No de miért tűnik kifejezetten OSX-specifikusnak tűnik a probléma, és se Windows-nál, se Linuxnál nem jelentkezik? Most kipróbáltam egy öregecske Fedora Linuxon, ott is helyesen működik (ez volt épp kéznél, igaz, virtuális gép formájában, ami elképzelhető, hogy megint változtat picit a képleten, de egyébként korábban sem tapasztaltam ilyen jellegű parát Linuxon).
Még esetleg Firefoxban csak kíváncsiságból meg tudnád nézni, ha kéznél van? Ha ott is ugyanez van, akkor legalább általános, és tényleg számolni kell ilyen gonddal OS X-nél, és jó tudni...
[ Szerkesztve ]
Sk8erPeter
-
disy68
aktív tag
Azért, mert azt írtad . Amúgy ebben a formában nem túl optimális a dolog.
Ez illeszkedik az összes submit gombodra $(":submit") és majd a hozzájuk legközelebb eső form-ra closest("form") magyarul az összes formodra -> $("form").
Az eseménykezelődön belül pedig az összes submitra állítasz disabled attributumot.
Az eseményeknél használhatod az event.target és az event.currentTarget property-ket jQuery-nél is, ha az esemény kiváltójára akarsz hivatkozni pl. $(event.currentTarget)
Összerakva a fentieket:
$("form").submit(function(event){
// ha csak az adott form submitjára illeszkedjen
$(event.currentTarget).children(":submit").attr('disabled', 'disabled');
// ha az összesre, akkor az általad írt
$(':submit').attr('disabled', 'disabled');
});“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
disy68
aktív tag
Egyrészt az event.which használata nem ajánlott, depricated állapotú. Másrészt ez egy read-only property, úgyhogy nem tudod felülírni. Rakd ki külön változóba és azt ellenőrizd.
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
dqdb
nagyúr
marhára nem readonly, símán működött a felülírás safariban
Az, hogy egy implementáció mit enged meg és mit nem, az nem érdekes jelen esetben. Az, hogy a szabvány szerint readonly, az az igazán érdekes. Onnantól kezdve, hogy te módosítasz egy egy ilyen mezőt, a böngésző erre adott reakciója nem lesz előre megjósolható (egy JS-ból lekezelhető exception lenne a legtisztább erre). Valószínűleg az esetedben az event handler hatására a Safari JS implementációja vagy egyszerűen dob egy exceptiont belül, és emiatt szakad meg az eseménykezelési lánc, vagy a visszatérése után észreveszi, hogy megváltozott az esemény, és ennek hatására úgy dönt, hogy ez már nem az az esemény, és megáll a feldolgozásával.Hát azt hiszem kihagyom, megvárom míg használható lesz. Vagy mi a jó alternatíva?
Például az ilyen esetekben helyes fallback. Ha van KeyboardEvent.key, akkor azt használod, ha nem, akkor jöhet a legacy megoldás. Amúgy ez a mező is readonly.Két megoldásod van:
1. te kezeled le a billentyűzeteseményeket teljesen, és módosítod a mező értékét ennek megfelelően
2. az átfordítandó billentyűzeteseményt lenyeled, és generálsz helyette egy új billentyűzeteseményttAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek
-
biker
nagyúr
Na, csak ki kellett írjam, és megvan a jó verzió
var resourceUrl = 'myresources.php';
resourceUrl += '&start=' + fetchInfo.start.toISOString();
resourceUrl += '&end=' + fetchInfo.end.toISOString();
resourceUrl += '&timeZone=' + fetchInfo.timeZone;
const request = new Request(resourceUrl);Érdekes, hogy ez meg nem működött
const request = new Request('myresources.php?start=' + fetchInfo.start.toISOString() + '&end=' + fetchInfo.end.toISOString());
Túl akartam egyszerűsíteni?
Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |
-
biker
nagyúr
közben raktam naplózást mindenre is, valóban, ha böngészőből küldök post-al adatot, és ablakban nyílik meg a fogadó file, akkor lefut a script, és elküldi tovább az adatot, ha háttérben hívjuk meg akkor nem fut le
<script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
<script>
$(document).one('ready', function () {
function submitForm() {
var data = {
'email-1': '<?php echo $newdata[0]['emailcim']; ?>',
'text-1': '<?php echo $newdata[0]['user_id']; ?>',
'text-2': '<?php echo $newdata[0]['user_ean']; ?>',
'date-1': '<?php echo date("Y-m-d", $newdata[0]['berlet_erv']); ?>',
'text-3': '<?php echo $newdata[0]['berlet_menny']; ?>'
};
jQuery.ajax({
url: 'https://www.**************l.hu/wp-admin/admin-post.php',
method: 'POST',
data: {
'action': 'submit_form_data',
'email-1': data['email-1'],
'text-1': data['text-1'],
'text-2': data['text-2'],
'date-1': data['date-1'],
'text-3': data['text-3']
},
success: function(response) {
// Sikeres válasz esetén itt kezelheted a választ
console.log("Sikeres adatküldés", response);
},
error: function(xhr, status, error) {
// Hiba esetén itt kezelheted a hibát
console.log("Adatküldés sikertelen", error);
}
});
jQuery.ajax({
url: 'https://*******************.hu/logger.php',
method: 'POST',
data: {
'action': 'submit_form_data',
'email-1': data['email-1'],
'text-1': data['text-1'],
'text-2': data['text-2'],
'date-1': data['date-1'],
'text-3': data['text-3']
},
success: function(response) {
// Sikeres válasz esetén itt kezelheted a választ
console.log("Sikeres adatküldés", response);
},
error: function(xhr, status, error) {
// Hiba esetén itt kezelheted a hibát
console.log("Adatküldés sikertelen", error);
}
});
}
submitForm(); // Az adatküldés indítása
});
</script>Ez után van egy logger a php-ben:
$log=$_POST['test']." ".$_POST['user_emailcim']." >> ".$newdata[0]['emailcim']." >> ".date("Y-m-d", $newdata[0]['berlet_erv'])." >> ".$newdata[0]['berlet_menny']." >> ".$newdata[0]['user_id']." >> ".$newdata[0]['user_ean'];
file_put_contents("uploads/".microtime().".txt",$log);ez menti a küldött adatokat ha a php lefutott, ugyanez van a logger.php-ben amit már a futó js hívna meg
Ha egy test.php-ből submitolok, akkor két log fileom lesz, adatokkal, ha háttérből (egy wp-n generált gomb, szintén jqueryvel küld adatot ide). akkor csak a php log íródik ki, minden adat helyes, de a document ready rész nem hívódik meg. Ezek szerint a háttérben generált oldal mivel nincs tartalom, nem generál document ready eventet sem?
[ Szerkesztve ]
Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |
-
DNReNTi
őstag
Nem vagyok benne 100% biztos, hogy ertem pontosan mi zajlik, de ha megis jol ertem, arrol van szo, hogy valami hatterfolyamatban nem fut meg a script-ed. Mivel a javascript a bongeszoben fut, igy ez termeszetes, nem is fog megfutni. HA jol ertem.
but without you, my life is incomplete, my days are absolutely gray
Új hozzászólás Aktív témák
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Promenade Publishing House Kft.
Város: Budapest