Új hozzászólás Aktív témák
-
Muton
addikt
a feladat, hogy a felhasználó meg tudjon becsülni valamit, szóval majd megpróbálok egy olyan szűrőféleséget csinálni, hogy az input mezőbe csak számokat fogadjon el, max 4-5 karaktert egymás után.
Meg elvileg ezt egyszer megbecsli a júzer, esetleg egyszer-egyszer módosítja, szóval nem lesz gyakori a használata, arra meg talán megfelelő lesz. köszi még egyszer
Muton#2316 - $z@r a drop >_<
-
martonx
veterán
Most nagyon off leszek, de mekkora f*sság már, amikor a designer határozza meg, hogy hogy működjön a program. És mi van ha designer megálmodik egy űrhajót, csak éppen senki nem tudja / nem éri meg se elkészíteni, se használni?
Ez a tipikus esete annak, amikor egy programozónak nem-et is kell tudnia mondani. Egy külön input-tal és dropdown-al ez egy 2 perces fejlesztés lett volna. Így meg te, plusz X fórumos ember - az mondjuk fel sem merül bennem, hogy egyedül meg tudnád csinálni - csinálja, csiszolgatja a kódot, és mindez csak azért mert a designer éppen ilyet talált ki.
Ráadásul és ez már pusztán webergonómia, amiről a designeretek nyilván abszolút nem hallott, a felhasználónak abszolút nem triviális, hogy ott lesz egy szép, agyondizájnolt valami, amit le lehet nyitni, meg írni is lehet bele, meg mindkettőt meg is kell csinálnia, szóval még csak felhasználóbarát se lesz a végeredmény.Én kérek elnézést!
-
Muton
addikt
válasz martonx #1852 üzenetére
nem értek egyet. ha elkezd egy mezőbe írni és automatikusan megnyílik alatta egy dropdown, amiből választhat, az sokkal egyszerűbb, mint ha még kattintani kell plusz egyet, hogy kiválassza az órát, percet, napot, stb., és a felület is kevesebb egy dropdown ikonnal, azaz tisztább, átláthatóbb
azt meg nem értem, hogy neked miért fáj, ha valaki önszántából időt fordít arra, hogy megossza tapasztalatát, ötleteit. ha jól emlékszem nincs kötelezve senki, emellett nem is konkrét implementációt kértem, az is elég lett volna, hogy "autocomplete-el indulnék a dolognak". természetes ennek jobban örülök
emellett képzeld el, hogy van egy még félkész saját megoldásom, ami docready-re egy egyedi classos divre (jelen esetben egy inputra) automatikusan dropdown-t épít html-ben és van hozzá már pár fv-is, ami kezeli a feltöltést, selectet. lehet, hogy nem az optimális út, attól még valszeg működni fog, tehát kérlek ne húzd az én, plusz X fórumos ember idejét azzal, hogy látatlanba ítéled meg tudásomat. köszi
Muton#2316 - $z@r a drop >_<
-
Jim-Y
veterán
na, többet nem tudok erre áldozni, de ilyen "érdekes" dolgokat is lehet vele csinálni
http://jsbin.com/icinaz/8/edit -
Sk8erPeter
nagyúr
Őőő, szerintem egy kicsikét félrevitted és félreértetted a dolgot. Ezt írta: "mekkora f*sság már, amikor a designer határozza meg, hogy hogy működjön a program. És mi van ha designer megálmodik egy űrhajót, csak éppen senki nem tudja / nem éri meg se elkészíteni, se használni?"
Ez a lényeg. Te magad beszéltél arról, hogy van egy dizájneretek, aki kiagyalt valami degenerált dolgot, hogy szerinte a júzernek hogyan lenne jó, és azt mondta neked, a programozónak, hogy akkor ezt most szépen implementáld, ezek szerint anélkül, hogy megbeszéltétek volna, hogy akkor ez így jó lesz-e egyáltalán. Most vagy diktátort játszik nálatok a dizájner, és ő dönt erről, vagy egyetértettél az elképzelésével, nem tudom.
Van egy igen nagy baj az elképzeléssel: felhasználói élmény tekintetében használhatatlan, szerveroldalon pedig a formátum kezelhetetlen. Ez a kettő általában nem jó párosítás. Egy dátumot például számtalan módon lehet szabályosan kezelni, nemzettől függően eléggé eltérnek ezek a formátumok. De nektek döntenetek kell arról, hogy ti melyiket használjátok, mindenesetre feleljen meg valami szigorú szabálynak. Például a default MySQL timestamp elég jó: 2013-01-29 23:35:55.
De azzal mit lehet kezdeni szerveroldalon és kliensoldalon, hogy "5 perc"? Meg mi van, ha többnyelvű az oldal?
Felhasználói élmény tekintetében pedig szerintem eleve rossz az elképzelés: mióta egyszerűbb az átlagjúzernek BEGÉPELNI valamit, mint ÖSSZEKATTINTGATNI?! Egyáltalán honnan tudja a felhasználó, hogy milyen formátumban kell begépelnie? Ha ott is van egy súgó, akkor azt mi a francért kell elolvasnia, miért töltsön el ezzel időt, miért hagyjunk benne hibalehetőséget, miért nem kattintgathatja össze különösebb időtöltés nélkül, tök egyértelmű felületen? Amit korábban összeeszkábáltunk, annál egyszerűbbet és egyértelműbbet szerintem nehéz összehozni. A mindenki által ismert naptárból bekattinthatja a napot, aztán egy tök értelemszerű csúszkával arrébbtolhatja az órát, percet. Engem megőrjítene, ha egy új oldallal való ismerkedésnél, például regisztrációnál egy dátummezőnél nekem a dizájner hülye agyalmányán kellene gondolkoznom, hogy vajon mi lehet az elvárt formátum, mit is gépeljek be. Minek gépeljek, amikor létezik manapság datepicker? Sokszor sajnos az ilyen egyedi elképzelések mentén, különösebb konzultáció nélkül kiötölt egyedi tákolmányok többet ártanak egy oldalnak, mint használnak.
Amit korábban jól elkészítettetek, igazából nem értem, miért nem felelt meg, azt kellett volna legfeljebb dizájnolnia a dizájnereteknek, nem pedig szárnyalni a fellegekben. Erre írta martonx is, hogy vannak helyzetek, amikor a programozónak nemet kell tudni mondania, és inkább elmagyarázni, mi lehetne a jobb megoldás.Sk8erPeter
-
martonx
veterán
Abszolút nem értetted meg a mondanivalóm lényegét, bár nem is vártam mást. Érdekes sk8erpeter megértette.
Annak örülök, hogy a szabadidődben ilyenekkel foglalkozol, ez visz bennünket előre. Nekem is van egy rakás értelmetlen (vagy annyira nem is értelmetlen? majd kiderül) hobbi projektem.
Az, hogy ennyire büszke vagy Jim-Y megoldására, mint saját félkész megoldásra, pedig tragikomikus.Én kérek elnézést!
-
Muton
addikt
köszönöm a segítségedet!
ne ölj kérlek bele több időt, mert az az én hibám leszSk8erPeter:
Félreérted, vagy rosszul fogalmaztam (mint ahogy szoktam )
Korábban datepickert csináltunk, amivel időpontot adunk meg.
Ez egy másik ügy, most időtartamot kell megadni, pl hogy egy folyamat 6 órig fog tartani. Elkezdi szépen beírni, hogy 6, és alatta egyből megjelenik, hogy 6 perc, 6 óra, stb, amire rá is tud kattintani.Illetve az meg Nektek is meg kellene érteni, hogy lehet, hogy Ti felülbírálhattok a munkahelyeteken dolgokat, nálunk ez nem így van. Ennyi. Lehet vitatkozni arról, hogy szerintetek így hülyeség valami, meg úgy, csak fölösleges, mert azt kell megcsinálni. Amúgy ezzel a felületi megvalósítással meg pont egyetértek.
Muton#2316 - $z@r a drop >_<
-
Sk8erPeter
nagyúr
"Ez egy másik ügy, most időtartamot kell megadni, pl hogy egy folyamat 6 órig fog tartani. Elkezdi szépen beírni, hogy 6, és alatta egyből megjelenik, hogy 6 perc, 6 óra, stb, amire rá is tud kattintani."
Okés, de akkor miért nem választjátok külön? Úgy, hogy mondjuk egyik része egy sima input, vagy pedig egy slider:
http://jqueryui.com/slider/#hotelrooms
aztán a másik pedig egy full hagyományos select lista, perc/óra/nap választhatósággal, és akkor azoknak lehetne a value-ja id is, és ez esetben még a többnyelvűség sem jelent problémát (mármint csak a szöveget kell lefordítani, az id-t nyilván nem).
De úgy is lehetne, hogy ez csak a "háttérben" van így, Te csak JavaScripttel átalakítod a felületet a kívántnak megfelelően, és akkor így még fallback is van (például ez a hót egyszerű felület lenne: http://tinkerbin.com/bcdYnwrq, most persze ez nem néz ki sehogy, ezt kéne JavaScripttel átalakítani akár a kívántnak megfelelően), tehát ha valaki neadjisten kikapcsolja a JavaScriptet, akkor még úgy is működik. Mindenesetre én tuti, hogy nem autocomplete-tel oldanám meg, mert ehhez szerintem értelmetlen. 3 választási lehetőség lesz mindig, ezt csak oda kéne rakni a felhasználó arcába, aztán válassza ki, amelyik neki kell.Abszolúte értem, amit mondasz, hogy vannak egyoldalú döntések, de biztos lehet valamit visszajelezni is; én most mondjuk magánban tolom, de bőven voltak már harcaim a megrendelővel, hogy ő kitalált valami tök hülye ötletet, és nagyon nehezen sikerült megértetni vele, fél órás magyarázkodás után, hogy az miért nem lesz jó. Aztán volt, hogy a furcsa kérést teljesíteni kellett, csak valahogy magamnak kellett kezelhetővé tennem. Az volt mondjuk a jobb eset, amikor megmutattam neki a kész megoldást egy kérésre (ha nem írta körül egzaktul, hogy egész pontosan hogy nézzen ki, stb.), elmagyaráztam, szerintem miért csináltam királyul, és akkor azt mondta rá, hogy ja jó, akkor jó lesz.
[ Szerkesztve ]
Sk8erPeter
-
Muton
addikt
válasz Sk8erPeter #1858 üzenetére
Közben megjött a válasz a miértekre: a sw első körben majd valami társcégnek, lesz kiadva, akik majd jól tesztelik funkcionálisan, és ergonómialig is, tehát először szépnek kell lennie a felületnek, és majd azt módosítjuk, amit nehezen kezelhetőnek ítélnek. Illetve sok sikeres (nagy felhasználószámmal rendelkező) sw-ből vannak átvéve a 'vitatott' elemek, bár én is úgy vagyok vele, hogy attól mert pár millirád légy szeret ezt-azt, én még attól nem, meg senki sem tudja, hogy amúgy a sikeres sw-ekben használt elemeket nem cserélnék-e le egyből a felhasználók, ha megtehetnék...
Én pl csak egy kicsi részét csinálom, és mivel az egységesség megőrzése is cél, akkor ha én valamit másképp csinálok, akkor lehet, hogy egy már létező modulban fog teljesen hülyén kinézni, és mivel kívül erősen határidős, az első verzióhoz nincs idő minden apróságot újragondolni.
Amúgy meg szépen gyűjtenem kell a javaslataimat, mert a második körben már lehet, hogy módosítva, finomítva lesz, valszeg ez a beviteli mező is, szóval mindenki megnyugodhat
Muton#2316 - $z@r a drop >_<
-
syC
addikt
Üdv!
Egy kérdés: formra append-del fűzök input mezőket, és $.ajax post-tal továbbítani szeretném a megadott adatokat. A #formNeve.serialize() fv. nem igazán akarja továbbítani a formhoz hozzáfűzött adatokat. Mit kell ilyenkor tenni?
mod: favágós módszerrel tároljam el az adatokat ... ugye ne?
[ Szerkesztve ]
•
-
Sk8erPeter
nagyúr
"akik majd jól tesztelik funkcionálisan, és ergonómialig is, tehát először szépnek kell lennie a felületnek"
Hát szerintem ez rossz gondolkodásmód, először jól MEG KELL TERVEZNI, amit alkotni fogtok. Aztán adott esetben ÚJRATERVEZNI. De eleve összecsapottan kialakítani, aztán a rossz elgondolást javítani szerintem sokkal rosszabb, a cég szempontjából anyagilag is."Illetve sok sikeres (nagy felhasználószámmal rendelkező) sw-ből vannak átvéve a 'vitatott' elemek"
Jó lenne valami ennél konkrétabbat is tudni erről, mert ez így önmagában nem mond semmit.Egyébként pont a határidős szorítás miatt tényleg megéri normálisan végiggondolni, hogy jó lesz-e az, amit szeretnél megvalósítani, mert ha a kapkodás miatt nem jó sül ki belőle, akkor aztán lehet, hogy azzal okozol magadnak többórás szopásokat, hogy aztán debuggolni kelljen.
A korábbi témát konkretizálva ráadásul sokkal gyorsabb és egyszerűbb azt kialakítani, hogy van egy input meződ, aztán melléraksz egy select listát a perc/óra/nap opciókkal, aztán ezt a felületed szépíted utólag JavaScripttel, mert így funkcionálisan eleve működőképessé alakítod a felületet, és a szépítés már sokkal kevésbé szívás. Szóval a javaslatokat tényleg nem kötekedésből mondtuk.Sk8erPeter
-
Muton
addikt
válasz Sk8erPeter #1865 üzenetére
Én nem látom át, hogy hogy lehetne elsőre megtervezni "jól", mert teljesen eltér az elvárt igény, ha pl nyugdíj előtt álló Pirike nénik használják, vagy facebook-függők vagy pl informatikusok, meg ugye egyénileg is mindenki mást szeretne. Ezért csinálunk egy verziót, aztán majd ha sírnak, hogy ide tekerőgomb kellene, nem pedig csúszka, akkor majd átalakítjuk.
Amúgy a megcélzott felhasználói kör igényeit nem ismerem, nem tudom, hogy mi lenne pontosan az elvárás, szóval vitatkozni sem tudok.Szerintem kellene egy qrva nagy exit gomb középre, ami visszakérdezés nélkül formáz, oszt cső
Este küldök privit
Muton#2316 - $z@r a drop >_<
-
Sk8erPeter
nagyúr
Hát a "jó" tervezésre tényleg nincs egzakt meghatározás, de az semmiképp sem jó, hogy két teljesen eltérő és külön is kezelendő adattípus egy mezőbe összepasszírozva utazik. Ahogy itt például meg kell adni egy konkrét számot, aztán meg kell határozni, hogy ezt percben vagy órában vagy napban értetted. Egyből kínálkozik a megoldás, hogy oké, legyen egy mező a számra, egy másik, select-mező pedig az opciókra. Ha egyben megy ez a két különálló adat, akkor az csak bonyolítja a szerveroldali ÉS kliensoldali validációt is, tök feleslegesen, mivel szét kell bontani, és ezután validálni, amikor eleve különbontva sokkal logikusabb és egyszerűbb lenne a helyzet. Kliensoldalon a UI-t úgy szépíted, ahogy akarod. Szóval a jó tervezésbe az is beletartozik, hogy ne kelljen szemetelni a kódot.
Sk8erPeter
-
trisztan94
őstag
Sziasztok!
Ebben a kérdésben DHJ felhasználó válaszát módosítottam saját igényeimnek.Egy karakter visszaszámlálóról van szó, mely nulláig számol. Az ő verziója, ha nyomva tartottuk a betűt, akkor nem számolt csak amint elengedtük, illetve a copy-paste-t sem szerette nagyon.
No, én ezt hoztam össze:
$('#CodeSnippetDescription').bind('keypress keyup keydown change', function (event) {
var max = 500;
var len = $(this).val().length;
var char = max - len;
$('.CountDown').text('Még '+ char + ' karaktert írhatsz.');
if (event.which < 0x20) {
// e.which < 0x20, akkor nem nyomtatható karakter
// e.which === 0 - nem karakter
return; // ne tegyen semmit
}
if (len >= max) {
event.preventDefault();
$('.CountDown').css('color', '#e80c4d');
$('.CountDown').text('Nem írhatsz több karaktert.');
}
});Addig jól működik, hogy elmegy nulláig és onnan visszafelem mínuszba már nem megy, de ha bemásolással túlléptük a max. karaktert (mondjuk 20-al), akkor viszont tovább megy és így jelenik meg: "Még -20 karaktert írhatsz". Mi kellene bele, hogy ezt kiküszöböljük?
Köszi,
Thttps://heureka-kreativ.hu
-
Sk8erPeter
nagyúr
válasz trisztan94 #1868 üzenetére
Ajánlom magamat, írtam egy miniplugint erre a célra:
http://stackoverflow.com/questions/5371089/jquery-count-characters-in-textarea/14789531#14789531
[ Szerkesztve ]
Sk8erPeter
-
syC
addikt
Üdv!
Egy gyors kérdés: ha a select-nek adok id-t, akkor miért nem működik* a kiválasztás?
* : bármit választok ki a listából, egyből visszaugrik az első option-re.
[ Szerkesztve ]
•
-
trisztan94
őstag
$('#select').change(function () {
$("#select option:selected").each(function () {
// itt tudsz a kiválasztott opcióra valamit csniálni. pl:
var value = $(this).val(); // a kiválasztott option értéke
if (value == "1") {
//valami
alert("első");
}
if (value == "2") {
//valami más
alert("második");
}
});
});<select name="select" id="select" >
<option selected="selected" value="0">Válassz valamit</option>
<option value="1">Első</option>
<option value="2">Második</option>
</select>valamiért hülyén jelenik meg a kódom, sorry! ott van jsfiddlen a szép
[ Szerkesztve ]
https://heureka-kreativ.hu
-
Sk8erPeter
nagyúr
válasz trisztan94 #1874 üzenetére
Ugyanúgy jelenik meg jsFiddle-ön is, mint itt.
Inkább a change()-en belül $(this).find("option:selected")...Láttad egyébként, amit neked írtam nemrég válaszul?
[ Szerkesztve ]
Sk8erPeter
-
Jim-Y
veterán
válasz trisztan94 #1874 üzenetére
Ezt egy kicsit túlmisztifikáltad szerintem, ugyanis ahogy létrehoztad a html-t, úgy nem tudsz többet kijelölni, így a kódban is rosszul kezelted le:
http://jsfiddle.net/Jim_Y/ddSUL/
Multiple selectekre:
-
Sk8erPeter
nagyúr
Ha már javítgatod: a második kódodban csinálsz egy ilyet:
$('#select').change(function (value,index) {
var res_array = $('#select').val();
...
});
Itt az újabb $('#select')-nek nincs sok értelme, akkor már $(this).val();Amúgy most végül is a lényeg szempontjából mindegy, hogy egy .each-csel bejárod az elemeket, vagy majd a te kódodban a res_array tömbön mész végig egy for ciklussal... szóval olyan nagyon nem misztifikálta túl.
[ Szerkesztve ]
Sk8erPeter
-
syC
addikt
function addNewSelect(){
$newSelect = $('<select>',{
'id': 'newSelectId'
});
$newSelect.append("<option selected='selected'> vállassz </option>");
for(var i=1; i<10; i++){
$newSelect.append("<option>"+i+"</option>");
}
$(document.body).append($newSelect);}
kb ez a kódom.
Köszönöm a gyors hsz-eket! A fenti kód által kapott select listára ha rákattintok és választok a 10 lehetőség közül, bármit választok, a kattintás után az első lehetőség kerül kiválasztásra ( mintha nem történne semmi ) . Erre irányult a kérdésem, hogy ez mitől lehet? Valami szintaktikai hiba?
•
-
Jim-Y
veterán
válasz Sk8erPeter #1877 üzenetére
igen, közben pont ez nézegettem én is, mondjuk szerintem az, hogy $(this).val(), vagy a $('#result').val() ebben a példában már édesmindegy..
de amugy igazad van, az a sor nekem se tetszett, szóval:
$('#select').change(function (value,index) {
$.each(value.target.selectedOptions,function(){
console.log(this.value);
});
});mielőtt még itt is felhozod, tudom, hogy a value.target helyett rögtön mehetne this.selectedOptions is, de nekem ez beszédesebb ^^
[ Szerkesztve ]
-
Jim-Y
veterán
-
Sk8erPeter
nagyúr
Szerintem nem "édesmindegy".
Egyébként most ez kicsit vicces, hogy azt írtad, hogy Trisztán kódja túl van misztifikálva, aztán lényegében ugyanazt csinálod, csak picit nehezebben olvasható szintaktikával... Pont ezt írtam itt szerk. után, hogy attól még, mert más volt az ő megközelítése, attól még nem volt túlmisztifikálva... trisztan94 védelmében, ha már megjegyezted, hogy rosszul csinálja (pedig nem, csak azt csinálta rosszul, amit te is, hogy az adott selectoron belül ugyanazt a selectort felhasználta még egyszer), akkor már érdemes megvitatni. Meg amúgy sem kell magára vennie senkinek, ha javítanak a kódján vagy javasolnak alternatívát, ez a topic többek közt ilyenek kivesézésére is való, hogy mi lehet jó/jobb megoldás.[ Szerkesztve ]
Sk8erPeter
-
Jim-Y
veterán
válasz Sk8erPeter #1881 üzenetére
Hát nem tudom, én azt értettem túlmisztifikálás alatt, hogy
$('#select').change(function () {
$("#select option:selected").each(function () {
var value = $(this).val();
....
}
});
});itt a belső $('#select option:selected").each -nek semmi értelme, mert nem tud az ember többet kiválasztani csak egyet, így ez felesleges, a
var value = ... bőven elég lett volna.Olyannak érzem ezt, mintha írnék egy ilyet
var alma = ['alma'];
for(var i=0;i<1;++i){
return alma[i];
}egy elemű tömbre, amennyiben tudjuk, hogy egy elemű, sem írunk iterátort, mert minek? De nem állítom, hogy nem értettem valamit félre, és trisztánt sem akartam megbántani, csak nekem ez feleslegesnek tűnt
[ Szerkesztve ]
-
Sk8erPeter
nagyúr
"itt a belső $('#select option:selected").each -nek semmi értelme, mert nem tud az ember többet kiválasztani csak egyet, így ez felesleges"
Már miért ne tudna többet kiválasztani? Pont te linkelted be a multiple attribútummal ellátott selectet...
De most gondold már végig: akkor itt ebben a kódodban miért használtad mégis az each-et, ha szerinted "felesleges"?A szerk. után írt kódod meg tulajdonképpen értelmetlen, mert ciklusszintaktikát használtál egy lépésre:
for(var i=0; i<1; ++i)[ Szerkesztve ]
Sk8erPeter
-
Jim-Y
veterán
válasz Sk8erPeter #1883 üzenetére
De amit ő linkelt, abban nem multiple select volt, hanem sima select, ha megnézed én azért linkeltem kettőt, mert az egyik sima select volt, hozzá megfelelő feldolgozó kóddal, utána pedig egy multiple select, amiben már volt each.
Hát te most valahogy nagyon nem érted, hogy mit akarok ebből kihozni ugye?!
[ Szerkesztve ]
-
Sk8erPeter
nagyúr
Az ő kódja viszont működik mindkét esetre, a tiéd meg nem. Akkor melyik a jobb, ha úgy döntesz, hogy multiple lesz, akkor két helyen kell átírni, vagy csak egy helyen? De a te megközelítésed sem rossz, de úgy állítottad be a kódját, mintha valami óriási plusz terhet rakott volna rá a feladatra.
Szerk. (úgy látszik, mindig szerkeszteni kell, mert mindig utána is írsz valamit ):
De, pontosan értem, amiről beszélsz, de kicsit túlzottan kötekedősnek éreztem a hozzászólásodat trisztan94 kódjára, ezért mondtam el, hogy annyira nem rossz, amit csinált, még ha lehet is javítani rajta (például a szerinted "édesmindegy" azonos selectort, ami lényegében rossz megközelítés).[ Szerkesztve ]
Sk8erPeter
-
Jim-Y
veterán
válasz Sk8erPeter #1885 üzenetére
Ja értem mit akarsz kihozni a dologból.. jó hát most olyanba szerintem nem kéne belemenni, hogy "mi lenne ha", igen igazad van, ha valami rossz kismanó átírná a kódját multiple selectre, akkor igen lefutna, egyébként az enyém meg nem, de ennyi erővel elég sokmindent át kéne írni a programokban hülyebiztosra. Egyébként, nem akartam senkit megbántani, meg igazat is adok neked, de akkor is abban a jsfiddle példában számomra az each értelmetlen volt, törődjetek bele
megj: én meg mindig téged érezlek kötekedőnek 1:1 , persze viccelek, azért az ilyenek is viszik előre az embert, ugyanis így tanul az ember, szoval peace
[ Szerkesztve ]
-
Sk8erPeter
nagyúr
"ha valami rossz kismanó átírná a kódját multiple selectre, akkor igen lefutna, egyébként meg nem"
Abban a formában is lefut, amit ő írt, úgyhogy ez nem igaz...Szerk. (mert megint írtál pluszt szerk. után):
jahh, az én célom nyilvánvalóan mindig csak a kötekedés, nem is ám az, hogy ne maradjanak kétes minőségű kódok a topicban javítás nélkül, ha visszakeresel a hsz.-eimre, nem segítettem ám senkinek, neked sem, nem válaszoltam ám a te kérdéseidre sem, veled is mindig CSAK kötekedtem, másból sem áll a tevékenységem... De nyilván most jól megmondtad a magadét, és szükséges volt általánosítani.
De akkor majd ignorálom a hsz.-eidet, és akkor nem lesz problémád.
Azt azért még hozzáteszem, hogy az én kezdeti fórumos tevékenységem során és most is mindig nagyon jól jöttek és jönnek az ilyen rendkívül szemét "kötekedő" hozzászólások, amikor valaki javította/javítja a hibáimat, én inkább örültem neki, ha valakivel ilyet meg tudtam vitatni, mintha hülyeségeket hagyott volna a fejemben.[ Szerkesztve ]
Sk8erPeter
-
trisztan94
őstag
válasz Sk8erPeter #1875 üzenetére
Mi a kulonbseg jelen estben az each es a find kozott? Nem kell megegyszer hivatkozni ra id-vel?
Ugy nez ki a visual studio nem nagyon szereti a copypasta-t, tobbszor is muvelte ezt velem
Nekem valamiert nem jelezte a PH!, hogy jott valasz Tobbszor volt mar ilyen, lehet, hogy azert, mert rss-be csekkolom az uj posztokat? Na mindegy, amint hazaertem meglesem, koszi!
En sosem gondolkodtam, hogy each-en kivul massal csinaljam, nekem ezzel a megoldassal mindig is mukodott az osszes select input vezerlese. Ez mondjuk egy 21 elemes select box az en oldalamon, csak leegyszerusitettem. Ha a 21. Van kivalasztva akkor megmutat egy divet, meg hat sok minden mas is van benne amit igy rezisztiv kijelzon nincs kedvem most leirni termeszetesen minden optimizalasra, jobb megoldasrqa nyitott vagyok, csak tanulok belole
https://heureka-kreativ.hu
-
fordfairlane
veterán
-
Sk8erPeter
nagyúr
válasz trisztan94 #1888 üzenetére
"Mi a kulonbseg jelen estben az each es a find kozott? Nem kell megegyszer hivatkozni ra id-vel?"
Félreértettél. Nem az each-csel van a baj, hanem azzal, hogy ugyanazt a selectort félrevezető lehet itt felhasználni, meg felesleges.
Tehát mondjuk $(this)-szel is meg lehetne oldani, tiédet gyorsan átalakítva:
http://jsfiddle.net/aBcnr/1/
Most a szemléltetésért direkt raktam multiple-re, ebben jogos, amit Jim-Y korábban mondott, hogy ennél nem lenne feltétlenül szükséges az each, mivel egyetlen elemről van szó.
Aztán tömbszerűen, erről szintén volt már szó:
http://jsfiddle.net/aBcnr/2/Szerk.: ja, egyébként jsFiddle-nél érdemes használni a TidyUp gombot, szépen formázza a kódot.
[ Szerkesztve ]
Sk8erPeter
-
trisztan94
őstag
válasz Sk8erPeter #1890 üzenetére
Ja értem, köszi a felvilágosítást
Ettől teljesen eltérve, vissza arra a kérdésre amire reagáltál microplugin formájában:
Olvastam egy blogon nem rég, hogy érdemes a legtöbb js/jQuery kódunkat (micro)plugin formájában használni, így növelve az átláthatóságot, későbbi felhasználhatóságot stb.. Te ezt használod, vagy csak a fontosabbakat rakod pluginba? Én nem rég tértem át a sima hívásokról a function-ök használtatára, sokkal jobban szeretem.
Nem lassítja be a böngészőt az, ha tegyük fel 15 különböző microplugint kell külön beolvasnia?(mert ugye hivatkozunk rá a html-ben script tag-ben) Nem egyszerűbb egy fájlban tárolni gyorsaság szempontjából?Köszönöm amúgy a megoldást, remekül megy
https://heureka-kreativ.hu
-
martonx
veterán
válasz trisztan94 #1891 üzenetére
Ha már most teljesítmény problémáid vannak, akkor vagy valamit elrontottál, vagy mellőzni kellene a Jquery-t.
Tegnap átálltam 1.9-es Jquery-re. Ennyit még az életben soha nem szívtam js-el, mint most. Még a gyári pluginekben is debug-oltam, mire sikerült ismét működőképessé várazsolni mindet. Bár az is igaz, hogy van pár ezer sornyi js-em. Ismét megerősítést kaptam, hogy fejlesztés közben azért a pár percnyi idő előnyért jó eséllyel öngól bármilyen third-party lib-et használni, mert később azt az időt többszörösen elveszted
Én kérek elnézést!
-
Sk8erPeter
nagyúr
válasz martonx #1892 üzenetére
"Ismét megerősítést kaptam, hogy fejlesztés közben azért a pár percnyi idő előnyért jó eséllyel öngól bármilyen third-party lib-et használni, mert később azt az időt többszörösen elveszted"
Ő, na de nem lett volna egyszerűbb nem átállni az 1.9-esre? Mivel abban még van IE-támogatás is, ami mellett érveltél, hogy jó, ha nincs (2.0 fölött), mivel akkor azzal lehet spórolni a kódbázissal... na de milyen tényleges előnyöd származott az 1.9-esre átállásból? Volt olyan újítás, amit így ki tudtál használni, és emiatt megérte az egész procedúra?Sk8erPeter
-
Sk8erPeter
nagyúr
válasz trisztan94 #1891 üzenetére
Hát a kettő igazából nem ekvivalens, hogy függvénybe rakok-e valamit, vagy mondjuk jQuery-plugint írok, vagy OO-jelleggel írom meg; feladattól függ. Ha például konkrétan ilyen feladatról van szó, hogy sok DOM-elem átalakításával, felhasználásával kapcsolatos feladat merül fel, akkor érdemes plugint írni rá (lásd például a jQuery UI pluginokat is, mint a datepicker, ott is egy input elem "viselkedését", kinézetét befolyásolod), ha csak valami szimpla feladatról, mint annak eldöntése, hogy egy szám páros vagy páratlan, akkor sima függvényt lehet írni rá (pl. function isOdd() vagy ilyesmi), ha objektumorientált gondolkodást igénylő feladat merül fel, mint hogy mondjuk van egy autó, aminek különböző tulajdonságai vannak, vagy van egy fiú és lány objektumod, szintén tulajdonságokkal felruházva, akkor OO-jellegű kódot érdemes írni rá, de nem indokolt a plugin... szóval a feladat függvényében érdemes dönteni. Általában azért nem nehéz eldönteni.
"Én nem rég tértem át a sima hívásokról a function-ök használtatára, sokkal jobban szeretem."
Mik azok a "sima hívások"?"Nem egyszerűbb egy fájlban tárolni gyorsaság szempontjából?"
A jobb CMS-eknél be lehet kapcsolni, hogy a sok-sok CSS- és JS-fájl helyett ezen fájlok aggregálása legyen aktív, tehát sok-sok különálló fájl helyett egyetlen fájlba bepasszírozott, lehetőleg valamennyire minimalizált változatot include-olnak a fájlba (nyilván külön ömlesztett CSS- és ömlesztett JS-fájl), ez így egyetlen fájllekérést eredményez a szerver felé mondjuk a 20 helyett, és ki vannak szedve a whitespace-ek is, így kevesebb ideig tart rajta a kliensnek végigrohangászni, plusz kevesebb helyet foglal, stb... ez adott esetben sokat számíthat teljesítmény szempontjából. A kliensnek is kevesebb fájlt kell behúznia, cache-elnie, valamint a szervernek is kevesebb fájlt kell kiszolgálnia, mindkét oldal számára jó lehet. Olvashatóság, fejleszthetőség szempontjából persze nem ez a jó, de itt nyilván élesbe helyezett oldalakról van szó, ahol érdemes az aggregálást választani.Sk8erPeter
-
trisztan94
őstag
válasz Sk8erPeter #1895 üzenetére
Aha, értem! Lehet, hogy én értettem félre, nekem abszolút az jött le, hogy a leg- lepkefingnyi kódot is pluginba írjuk, mert az milyen jó. Hát kicsit fogtam a fejem.. Mondjuk németül volt a blog, azt csak középszinten tudom, lehet bekavartam valamit
"Mik azok a "sima hívások"?"
$('#valami').click(function() {
//do stg
});Ezek helyett a "sima hívások" (van erre valami szakkifejezés? nem jut eszembe ) helyett használom most így:
$('#valami').click(function() {
something();
});
function something(){
//do stg
}Persze nem ennyire leegyszerűsítve, mindig az újraírhatóságra gondolok, mindegyiknél lehet változókat átadni stb..
Én próbálok mindig objektum orientált lenni, sokszor kísért meg a "sötét oldal", hogy inkább lesz*rom, gányolok, úgy is működni fog, de most már inkább levágom véder fejét a barlangban, szembe nézek vele és megírom szépen
Teljesen más (mix ASP.Net is van benne):
Még mindig a kódfeltöltés résznél az oldalamon:
Lőn egy div, mi nem látszódik, hacsak nem kattintunk egy linkre, mely mondja néki, hogy: "látszódjál, DIV!"
Na, viccet félretéve:
Tehát lehetősége van a felhasználónak leírást írni a kódrészlethet, de ez opcionális lehetőség. Amikor a felhasználó a linkre kattint, egy <textarea>-t tartalmazó <li> slideDown-ol.
Eddig minden stimmel, itt van róla jsfiddle példa.
Eddig teljesen okés a dolog, tökéletesen üzemel, sok mindent nem lehet elrontani.
A probléma ott lőn, hogy az ASP.net tartalmaz egy nagyon handy szerveroldali validációt. Nos ott ugye megadtam, hogy 10 és 1000 karakter között legyen a textarea szövege, ha ez nem jó szépen oda appendeli alá a validationerror-t így néz ki ez asp-be (de ez ugye teljesen irreleváns):Validation.Add("CodeSnippetDescription", Validator.StringLength(1000, 10, "A leírásnak 10 és 100 karakter között kell lennie."));
Így néz ki a html kódja a jsfiddle példának, ott kivettem belőle az ASP-s validation cuccokat, hogy ne zavarják a megjelenést:
<li class="CodeSnippetDescription">
<label for="CodeSnippetDescription">Kódrészlet leírása</label>
<textarea id="CodeSnippetDescription" name="CodeSnippetDescription"@Validation.For("CodeSnippetDescription")></textarea>
@Html.ValidationMessage("CodeSnippetDescription")
</li>Nos ezzel az a baj, hogy mivel mindig ott van a textarea, így ha a felhasználó nem akar leírást hozzáadni, akkor is fogja mondani, hogy kell a 10 karakter. Ezt úgy akarom kiküszöbölni, hogy jQuery-be, hozzá .append-olom a textarea-t a <li>-hez, és akkor minden nagyon szép és jó lesz, mert ha akar hozzáadni leírást akkor benne lesz a DOM-ban, ha nem akkor pedig nem tud mire validálni. (ezt majd try-catch-el fogom megoldani szerintem). Amikor pedig a leírás visszavonására kattintunk, akkor meg remove-olja a textarea-t, így az is szintén rendben van.
A probléma ott van, hogy sehogy sem akarja appendolni a <li>-n belülre az oda tartozó dolgokat.
Próbáltam több féle képpen is:$('.CodeSnippetDescription).children().append("<p>hello</p>");
$('.CodeSnippetDescription).append("<p>hello</p>");Sehogy sem rakja bele abba a fránya <li>-be.. Megfájdul a fejem esküszöm. Biztos valami nagyon egyszerű cucc ami most nem jut eszembe
Tehát összegzés:
Szeretnék egy <li>-n belülre appendolni egy textarea-t.Update: Az append az nem egy szinten van a DOM-ban a <li>-vel? Tehát ha jól értem, akkor nem a <li>-re kéne append-olni, hanem az ő containerjére, nem? A <li> parent-ja egy <ol>, annak a parentja egy <fieldset>. Mostmár csak arra kéne rájönnöm, hogy hogy appendolom a <li>-n belülre. Esetleg appendTo?
Vagy más ötlet/megoldás? Nagyon túlbonyolítom? Hogy csinálnád ezt PHP-ban?
[ Szerkesztve ]
https://heureka-kreativ.hu
-
fordfairlane
veterán
válasz trisztan94 #1896 üzenetére
Aha, értem! Lehet, hogy én értettem félre, nekem abszolút az jött le, hogy a leg- lepkefingnyi kódot is pluginba írjuk, mert az milyen jó. Hát kicsit fogtam a fejem..
A jquery plugin olyan, mint más rendszerekben az újrafelhasználható komponens. A hangsúly azon van, hogy a kész kódot a lehető legkönnyebben lehessen felhasználni különféle oldalakon anélkül, hogy bele kelljen nyúlni a plugin programjába. A plugin olyan szerkezetű, hogy mindent tartalmaz, ami szükséges a használatához, és idegenek, akik semmit nem tudnak a belső felépítésről, azok is egyszerűen tudják felhasználni. Ha arra gondoltál, hogy a plugin olyan, mint egy függvény, vagy egy objektum metódus, akkor tényleg mellélőttél.
[ Szerkesztve ]
x gon' give it to ya
-
martonx
veterán
válasz Sk8erPeter #1894 üzenetére
Valójában semmilyen előnyöm nem származott az átállásból. Ami miatt megléptem az három dolog volt:
1. A projekt amit fejlesztek még csak teszt fázisban van, és mire kijövünk élesben, nem akartam hogy ha bárki ránéz a kódra, akkor azt kérdezze, hogy miért elavult jquery verziót használtam. Bár csak e miatt valóban nem kellett volna szivatni magam.
2. A 2.0-ára mindenképpen át akarok állni, mert mint többször mondtam nem érdekel a régi böngészők támogatása, inkább legyen kisebb, gyorsabb a jquery. És az 1.9-es API-ja (elvileg legalábbis az előre beharangozottak szerint) azonos a leendő 2.0-ásével, így gondoltam jobb most megtenni egy nehézkes váltást, mint ha élesítés előtt vagy után közvetlenül jelenne meg a 2.0-ás, és csak szívnám a fogamat, hogy én meg most megyek élesbe 1.8-assal, és a franc se akarna hozzányúlni.
3. Nem gondoltam, hogy tényleg ekkora szívás lesz átállni.Én kérek elnézést!
-
martonx
veterán
válasz trisztan94 #1896 üzenetére
Valamit nagyon benézel, mert az append-nek így működnie kellene, ahogy mutatod.
Én kérek elnézést!
-
Sk8erPeter
nagyúr
válasz trisztan94 #1896 üzenetére
"Lehet, hogy én értettem félre, nekem abszolút az jött le, hogy a leg- lepkefingnyi kódot is pluginba írjuk, mert az milyen jó."
Erre a válasz megint az "attól függ". Indokolt esetben "lepkefingnyi" kódot is érdemes lehet pluginba rakni, ha adott DOM-elemek manipulálását egyszerűbbé teszi. Erre sincs általános szabály.
Mindenesetre az tény, hogy a jQuery plugin nem egy nagyon misztikus valami, nem is nehéz írni, de hasznos lehet, viszont nem is kell rá úgy tekinteni, mint egy gyógyír az összes problémádra. Egyébként legalább egyszer próbáld ki, hogy írsz egy tök egyszerű jQuery plugint, nagyon jó a dokumentáció a jQuery hivatalos oldalán, meg rengeteg tutorialt lehet találni a témában. Ha legalább egyszer kipróbáltad, milyen az, akkor segít eligazodni, hogy mikor lehet érdemes plugint írni. Akár 20 perc alatt át tudsz futni rajta, hogyan kell, mit kell tudni róla nagyvonalakban, és meg tudod írni a legegyszerűbb pluginedet, szóval érdemes rászánni azt a kevés időt.""Mik azok a "sima hívások"?"
$('#valami').click(function() {
//do stg
});
Ezek helyett a "sima hívások" (van erre valami szakkifejezés? nem jut eszembe )"Uhh, hát itt megint csak valami fogalomzavar van. Ez a "sima hívás" egy eseménykezelő akar lenni... a click eseményre feliratkozol (így szokták mondani) egy eseménykezelővel. Tehát annyi ennek a lényege, hogy amennyiben #valami elemre ráklattyolnak, akkor ez a függvény fog lefutni. Jelen esetben itt egy úgynevezett anonim függvénnyel iratkoztál fel az eseményre. De nem kell, hogy az a függvény anonim legyen, a függvénypointeres szintaktikával is lehet:
function myFunction() {
// do something
// ....
}
$('#valami').click(myFunction);Ugyanaz fog történni. A különbség az, hogy jobban elkülönül a kettő. De itt sem egyértelmű, hogy egyiket vagy másikat "érdemes" használni - ha sokszor használod fel mondjuk az adott függvényt, máshol is van rá szükség, akkor nyilván érdemes így szétválasztani, ha egyetlen helyen lesz felhasználva, akkor nem kell, sőt, adott esetben olvashatóság szempontjából még jó is lehet, hogy "egy helyen van".
"Én próbálok mindig objektum orientált lenni, sokszor kísért meg a "sötét oldal", hogy inkább lesz*rom, gányolok, úgy is működni fog"
Ez ismét képzavar, ha valaki nem objektumorientáltan kódol, az nem azt jelenti, hogy gányol.
Scriptnyelvekben például nem feltétlenül kódolsz objektumorientáltan, aztán mégis lehet úgy is igényes kódot írni."Az append az nem egy szinten van a DOM-ban a <li>-vel?"
Hogy micsoda?"Tehát ha jól értem, akkor nem a <li>-re kéne append-olni, hanem az ő containerjére, nem?"
Nem. A <li>-hoz is lehet appendolni, kódodban hozzáfűzve a Lorem ipsum dumát:Egyébként van .slideToggle() is, ami kicsit egyszerűbb.
Sk8erPeter
Új hozzászólás Aktív témák
- Bomba ár! Asus VivoBook X412F - i5-8GEN I 8GB I 256GB SSD I 14" FHD I HDMI I Cam I W11 I Garancia!
- Bomba ár! HP ProBook 650 G5 - i7-8GEN I 8GB I 256GB SSD I 15,6" FHD I Cam I W11 I Garancia!
- Bomba ár! Lenovo ThinkPad L380 - i5-8GEN I 8GB I 256SSD I 13,3" FHD Touch I Cam I W11 I Gari!
- Bomba ár! Asus VivoBook S410U - i5-8GEN I 8GB I 256GB SSD I 14" FHD I HDMI I Cam I W11 I Garancia!
- Bomba ár! HP ProBook 450 G3 - i7-6G I 8GB I 256GB SSD I HDMI I 15,6" FHD I Cam I W10 I Gar!
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen