- Elhozná az olcsó önvezető autók korát az Xpeng
- Vodafone otthoni szolgáltatások (TV, internet, telefon)
- Kiderült, hogy hol veszik a legtöbb kínai EV-t
- Kaspersky Antivirus és Internet Security Fórum
- Linux kezdőknek
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Aliexpress tapasztalatok
- Az EU szerint a ChatGPT még mindig nem felel meg a szabványoknak
- SkyShowtime
Új hozzászólás Aktív témák
-
adam_
senior tag
Elméletben így tudnám prezentálni a problémám, amit funciónalítás (kód) szempontjából szeretnék megéretni, és átültetni az én konkrét példámra (Konkrétabb részletek a korábbi hozzászólásaimban. )
További komment fiddleben.
Köszönöm szépen előre is, ha valaki időt szán rá/rám.
Ádám
[ Szerkesztve ]
-
Sk8erPeter
nagyúr
Értem, hogy mit szeretnél, de mégis mi a búbánat értelme van eltüntetni a menü ikonját? Tényleg egyáltalán nem értem, miért zavar bárkit is, hogy ott van az a három csíkkal ellátott kis ikon. Sőt, szerintem kifejezetten béna, hogy eltűnik. Ráadásul még arra sem teremtesz lehetőséget, hogy bezárhassa a júzer magát az előugró login-felületet - pedig legalább a bezárás-ikonra kattintva pl. elő lehetne ismét hívni az amúgy tök értelmetlenül elrejtett menüikont. A képeden legalábbis a login-űrlapnál nem látszik semmiféle bezáróikon, ha a felhasználó meggondolná magát, és mégsem akarna bejelentkezni, VAGY például tök véletlenül kattintott oda. Vegyük utóbbi esetet - szerinted a júzer örülne neki, ha véletlenül kattintott volna, és erre eltűnne a menüpontokat előhívó ikon? Csak anyázna, hogy miért kellett ezt így megcsinálni, mi értelme, hogy a navigációt lehetetlenné teszed, ha rányomott a loginra. Szóval ez user experience szempontjából katasztrófa.
Ebből a példakódodból meg nehéz kiindulni, a későbbiből meg végképp, mert a valós példától eléggé eltér. Mindenesetre először közös nevezőre kell jutni, hogy érthető legyen, miért is van szükség ezekre az eltüntetgetésekre, és pontosan hogyan is képzeled, mert jelenleg ez felesleges körök futásának tűnik, amit aztán később úgyis megváltoztatsz, mert rájössz, hogy ez úgy szar, ahogy van.
A JS-kód kapcsán meg tényleg nem értem, ennyire hatástalanok voltak a múltkori tanácsok azzal kapcsolatban, hogy mondjuk egy-egy elemet tárolj már el változóban, ne keresgéld ki a DOM-ból minden alkalommal, ne legyen kódismétlés, ne keveredjen a JS-kóddal bármilyen CSS-kód, aztán amit lehet, CSS(3) segítségével intézz el, és így tovább?[ Szerkesztve ]
Sk8erPeter
-
adam_
senior tag
válasz Sk8erPeter #3152 üzenetére
Őszintén szólva, így kérte a felettesem, gondolom neki meg az ügyfél mondta, hogy így akarja, így hát én így próbálom megcsinálni. Egyenlőre becommitoztam neki az én variációm, de tényleg elég gázos, hogy egyszer eltünik a pl a login ha a nav-ra kattintanak, majd a navból elérhető ugyanez a login menüpont.
-
Sk8erPeter
nagyúr
Hát ha csinálsz valami értelmes demót (az előbbi dobozos nem csinál semmit, meg elavult a kód, meg nincs sok köze a valós példához, nekem meg nincs kedvem működésre bírni), akkor segítünk. Amúgy a feladatnak tényleg SEMMI értelme nincsen. Én mondjuk biztos ezt megemlíteném annak, aki kérte, hogy a júzerrel b@sznak csak ki, de hát evvan.
Amúgy szerintem Te nem tudod, mit jelent az, hogy "etc.". (csak akkor minek használod ) Következetesen rosszul használod a mondataidban: "akkor toggle()-lal, etc. ki/be lehessen nyitogatni, "viszont ha újból rákattintok a box1-re, etc becsukom a toggle()-al akkor újból jelenítse meg mellette a box2-t", "akkor a box2a maroon színű div kerüljön bele. Etc, a menüből lehessen bejelentkezni.", "jelen esetben 640px (etc 40em) alatt"...Sk8erPeter
-
adam_
senior tag
válasz Sk8erPeter #3154 üzenetére
Szia,
készítettem egy demót az elképzelésemről. Mielőtt linkelném a fiddle-t, leírnám, hogy jelenleg mi a felállás:
Kollégám szerint egyenlőre felesleges frissíteni Drupal alatt a JQuery-t, mert az on() felhasználásán kívül jelenleg nem nyerünk vele sokat.. tehát marad az esetünkben a delegate() parancs és az ősrégi JQuery Nem vitatkozom vele.
A show() / hide() témával kapcsolatban kollégám azt írta, hogy elméletben így lehetne megoldani:
- toggle link hozzáfűzése a DOM-elemekhez ( hide()/show() )
- optional a show() előtt a többi kapcsolodó DOM-elemet rejtsük elEgy lehetséges forgatókönyv hozzá:
- toggle link kap egy data-target="ziel-id" -t és opcionálisan data-hide="other"
vagy egy másik felállás szerint:
- Cél elemnek van egy id-ja és egy közös osztályuk pl.: toggle-box
Tehát a toggle-link és toggle-box osztállyal így variálhatunk. Toggle link osztály megadása az összes trigger elemnek (tehát menü-trigger + form-trigger), majd a lenyiló tartalmak pl menü-box + form-box nak is adunk egy közös osztályt toggle-box néven. Majd egy lehetséges kód hozzá:
$(document).delegate('.toggle-link', 'click', function() {
var target = $(this).attr('data-target'),
hide = $(this).attr('data-hide');
if(hide == 'other') {
$('.toggle-box').hide();
}
$('#'+target).toggle()
return false;
});Szóval az a lényeg, hogy valahogy párhuzamosan elérjük, hogy a user ne tudjon egyszerre a login (jelen esetben zöld) és a menü trigger ikonjára (fiddleben ez piros kocka) is kattintani ezzel lenyitva mind a két boxot. Csak szépen az egyiket tudja lenyitni egyszerre.
Jelenleg a fiddleben egyszerre lenyílik a menü és a login box is, ha rákattintunk, és ez valóban nem szép.
Hogyan tudnám a mostani fiddle példámban ezt megoldani, az új kód segítségével? Pluszban ugye jó lenne elérni, ha a user a menüre kattint, onnan jelentkezzen be, közben meg párhuzamosan ne tudjon a login-trigger(zöld kocka)-ra kattintva is bejelentkezni. Tehát az hide()-olni kellene.
Valamint még megjegyezném, hogy most már szépen lenyílik a menü ha kis display mérett alatt a kék kockára kattintok, viszont ha ezt követően összehúzom a kijelzőméretét, akkor azt tapasztalom, hogy a navigáció eltünt. Ez miért van? És a login miért marad ugy szépen, ahogy kell?
Remélem ezúton érthető demót szolgáltattam.
Előre is köszönöm az észrevételeket,
Ádám
[ Szerkesztve ]
-
adam_
senior tag
[ Szerkesztve ]
-
martonx
veterán
-
attis71
tag
Sziasztok!
jQuery-ben szeretnék e-mail karakter ellenőrzés megvalósítani input mező elhagyásakor.
Tudnátok valami ötletet, persze nem kell a kész kód!
Csak szeretném megoldani és mindig zsákutcába jutok.attis71
-
adam_
senior tag
[link] Újabb módosítás történt, bevezettem data-targeteket a cél ID-s konténrekehez, valamint a data-hide-ot a triggere vonatkozóan, valamint toggle-link a triggerhez + toggle-box osztályokat a boxokhoz. Így szépen megy a kód, viszont a hide() funkcionalítást kellene belőnöm hozzá. Valaki tudna segíteni benne?
[ Szerkesztve ]
-
adam_
senior tag
Valamint még azt szeretném elérni, hogy normál desktop nézetbe ha a loginra kattintanak, az szépen lenyílik toggle() segítségével, viszont ha újból rákattintok a login-ra nem akarja "visszacsukni" azt, ez miért van?
Előre is köszönöm az észrevételeket, és bocsi ha ma "sok voltam" itt, de már csak ezt az apróságot kellene megoldanom valahogy.
-
adam_
senior tag
//fix: menu always show on desktop (40em +)
if ( $('#nav-main').hide() && ($('#headerTop').width() > 640) ) {
$('#nav-main').show();
}Írtam egy ilyen fixet, mivel ha normál desktop nézetben megnyomják a logint, automatikusan eltünik a navigációs sáv is, ezzel a scripttel ez kiküszöbölhető. Viszont még továbbra is szeretném megoldani, hogy ha a loginra kattintásnál aktíválodó toggle()-t, mivel a login content szépen lenyílik toggle() segítségével továbbra is, viszont ha újból rákattintok a login-ra nem akarja "visszacsukni" azt. További részletek itt [link].
[ Szerkesztve ]
-
Sk8erPeter
nagyúr
"Kollégám szerint egye
nlőre felesleges frissíteni Drupal alatt a JQuery-t, mert az on() felhasználásán kívül jelenleg nem nyerünk vele sokat.."
Az igen... és ő egyáltalán webfejlesztő? Remélem, veled nem sikerült ezt elhitetnie.
Csupán például nem egy ősrégi elavult jQuery-t használnátok, így az újabb jQuery-k valamelyikének előnyeit ki tudnátok használni, tudnátok olyan modulokat használni, amik az újabb jQuery-ket igénylik (vannak olyan modulok/sminkek, amik ezt kifejezetten megkövetelik), tudtok több jQuery-változatból is választani a modul beállításai között, soroljam még? A kollégádnak tehát egy kissé inkompetens véleményt sikerült megfogalmaznia.A többit akkor most átugrom, mert azóta elég sok hsz.-ed volt, úgy tűnik, továbbjutottál a dologban.
(#3161):
"[link] Elvileg elkészült, ilyet szerettem volna elérni."
Ebben a példában rohadt zavaró, hogy ha előhozom a menüt, akkor ugyanoda újbóli kattintásra nem tűnik el, hanem kötelező valami elemet választanom, különben nem hajlandó eltűnni. Vagy a zöld hátterű divre kell kattintanom, ekkor viszont a bejelentkező űrlap ugrik elő, pedig én nem ezt akartam. Ha ez tényleg ilyen a végleges felületen is, számítsatok rá, hogy anyázni fognak a felhasználóitok.
Aztán ha rákattintok a Login menüpontra, az előugró űrlapot továbbra sem tudom semmivel sem bezárni. Csak akkor, ha rákattintok a menüt előhozó lenyílóra, akkor hirtelen eltűnik az űrlap, de akkor meg nem értem, mi a frászért teszi ezt, mert ugye nem kéne, senki nem kérte, hogy tűnjön el.Lehet, hogy közben ezekre rájöttél, annyit írtál, hogy már kicsit elvesztem az információtengerben, meg hogy most hol is tartasz, de majd biztos megírod.
Ilyenek miatt amúgy nem értem, miért nem használtok egy jó kiindulási alapot, valami olyasmit, mint a Bootstrap (Drupal-smink is van hozzá), aztán erre ráépítve szépíthetnétek és testreszabhatnátok a felületet. Ja, de várj, az nem fog menni, hiszen a kollégád szerint FELESLEGES a frissebb jQuery... Haha.Sk8erPeter
-
adam_
senior tag
válasz Sk8erPeter #3164 üzenetére
Szia, köszönöm a válaszod.
Ebben a példában rohadt zavaró, hogy ha előhozom a menüt, akkor ugyanoda újbóli kattintásra nem tűnik el, hanem kötelező valami elemet választanom, különben nem hajlandó eltűnni. Vagy a zöld hátterű divre kell kattintanom, ekkor viszont a bejelentkező űrlap ugrik elő, pedig én nem ezt akartam. Ha ez tényleg ilyen a végleges felületen is, számítsatok rá, hogy anyázni fognak a felhasználóitok.
Nem ilyenre akartam megoldani, csak így tudtam. Segítenél ebbe, illetve rávezetnél, hogy a menüt illetve a login miért nem akarja eltünteni, ha újból rákattintok a triggerére, hol a hiba a kódban? Hol kellene változtatnom? Szóval azt kellene elérnem, hogy ki/be csukodjon a login/menü is ha az ikonjára kattintok, normál toggle() funkcióval, de ez valamiért nem megy.
A másik, pedig, hogy a kis display méret melett rákattintok a trigger ikonokra, akkor nagy display méret mellett eltünik az egész nav, ez miért van?
miért nem használtok egy jó kiindulási alapot, valami olyasmit, mint a Bootstrap (Drupal-smink is van hozzá)
Na látod, ez is jó kérdés. kollégám szerint nem lehet Bootstrapet használni, mert alapból Foundationnal dolgozunk Drupal alatt. Abból viszont nem tetszik neki a beépített nav funkció. Szóval totál káosz.
[ Szerkesztve ]
-
adam_
senior tag
Legújabb fiddle. Ebben már szépen megy amit szeretnék, viszont ezt még nem sikerült megoldanom:
'A másik, pedig, hogy a kis display méret melett rákattintok a trigger ikonokra, akkor nagy display méret mellett eltünik az egész nav, ez miért van?'
-
Sk8erPeter
nagyúr
"kollégám szerint nem lehet Bootstrapet használni, mert alapból Foundationnal dolgozunk Drupal alatt"
Hát nyilván ne legyen mindkettő, ez tök érthető, vagy egyik vagy másik.
De ezek szerint ott van a Foundation! Akkor mi a frászért nem használjátok? Tényleg nem értem:
http://foundation.zurb.com/docs/components/topbar.html
Még modális ablakokra is van lehetőség a Foundationnel:
http://foundation.zurb.com/docs/components/reveal.html
Ebben pedig szépen meg tudnátok jeleníteni a login-űrlapot.
Ha meg ez nem jön be, akkor jelenítsétek meg máshol... de ne úgy, hogy kitakarja a menü..."Abból viszont nem tetszik neki a beépített nav funkció"
És mi nem tetszik rajta neki?
Ez amúgy azért elég vicces, ehelyett elkezdtetek vadul tákolni, hogy azért mégis csak pótoljátok valahogy. De nem működik, ezért aztán megéri ezen napokat tökölni, ahelyett, hogy ízlésetek szerint ÁTSZABNÁTOK az alapértelmezett megjelenést, ahogy az erre építő theme-ek/template-ek is teszik.... De most tényleg, basszus, egy mobile-first frontend frameworköt használtok, és most komolyan azon tököltök már nem tudom, mióta, hogy hogyan csináljátok meg a top navigation bart, és hogy hogyan kéne vaklahogy azt összetákolni, hogy tényleg reszponzív legyen a dolog? Akkor miért nem kukázzátok ilyen alapon az egész frontend frameworköt, ha épp azt az előnyét nem használjátok ki, ami rengeteg időt megspórol nektek? Konkrétan többek közt ilyen feladatok megvalósítására való, épp ezt a melót spórolja meg a fejlesztőknek. Ne csináljátok már...
Valószínűleg már réges-régen kész lennétek az egésszel, ha a kollégádnak nem lennének ilyen rettentően kompetens meglátásai.A (#3166)-ban feltett kérdésedre meg azért nem tudok válaszolni, mert nekem káoszos ebben a formában, hogy itt-ott beégeted a kódba egy-egy style-attribútumban, hogy display:none;, máshol beégeted, hogy display:block;, és ha előhívom a fejlesztői panelt, akkor egyes elemeknél össze-vissza lesznek ezek (pl. a Login menüpont kapott egy display:none-t, mikor a többiek nem, ennek sincs semmi értelme) ahelyett, hogy ezekre is osztályokat használnál, pl. a .hidden vonatkozhatna azokra az elemekre, amiket elrejtettél, és így tovább... Szóval most azt éreztem, hogy túl sok időbe kerülne kibogozni. Nem véletlen az a szabály, hogy kódokat nem kutyulunk. Így "nyers" HTML-kódba nem sűrítünk bele CSS-kódot style-attribútumok formájában, JavaScript-kódot sem erőszakolunk bele onclick és egyéb ehhez hasonló attribútumok formájában, ugyanígy JavaScript-kódba nem erőszakolunk bele CSS-kódot (csak ha nagyon muszáj), legfeljebb osztályokat, amiket váltogatunk, és így tovább.
Egyébként ne em-egységeket írogassatok, tök felesleges, hanem nyugodtan használjátok a pixelt:
http://stackoverflow.com/questions/11799236/should-i-use-px-or-rem-value-units-in-my-css/11803273#11803273Ezenkívül <br />-t se használj, egy tisztességesen megszerkesztett Word-dokumentumban sem Entereket püffölünk a térköz beállításához (a <br />-ek használata pedig pontosan ugyanilyen).
[ Szerkesztve ]
Sk8erPeter
-
adam_
senior tag
válasz Sk8erPeter #3167 üzenetére
Egyébként ne em-egységeket írogassatok, tök felesleges, hanem nyugodtan használjátok a pixelt:
http://stackoverflow.com/questions/11799236/should-i-use-px-or-rem-value-units-in-my-css/11803273#11803273Hát ez se az én ötletem volt, hogy használjunk em-et.
Újabb érdekesség felmerült: [link] Muszáj lesz jQuery-t updatelni. Megcsináltam ezt a scriptet, és miután beintegráltam Drupalba amin jQuery 1.4 fut!!, érdekességként tapasztaltam, hogy a nav toggle funkciója, csak "lenyitja a menüt", de visszacsukni nem lehet. Ezt követően kezdtem el gondolkozni, hogy ugyanaz a script, ugyanaz a html/css stuktúra mellett miért nem működik a scriptemben a toggle() a Drupalunk alatt, úgy ahogy kellene. Aztán elkezdtem tesztelni a scriptem Fiddle alatt, és azt tapasztaltam, hogy jQuery 1.9 alatt nem működik az egész. Illetve pontosan úgy viselkedik pl a toggle() hogy csak lenyitja a menüt, ahogy nálam a Drupal alatt is.. viszont jQuery 1.9 és feletti libekkel tökéletesen megy a script. Most nem tudom pontosan, hogy mely funkció támogottsága hiányzik, de egyszerűen úgy gondolom lib.-et kell updatelni, és kész. Nincs kedvem átnézni az egészet, hogy az ősrégi jQuery libhez passzoljon...
Holnap lesz egy szép beszélgetésem a kollégával. De már most kivan a t*** a szitutól.
[ Szerkesztve ]
-
fordfairlane
veterán
Nincs kedvem átnézni az egészet, hogy az ősrégi jQuery libhez passzoljon...
Az 1.9-es jQuerynél azért van már egy-két dolog, API hívás, ami a korábbi verziókban benne volt, majd később kikerült, szóval tesztelni kell. Én azt javaslom, hogy egyszerre csak egy alverziónyit updateljetek, és utána teszteljétek. (1.4-ről 1.5.x-re, ha minden oké, mehet az 1.6.x és így tovább). Persze lehet egyből a legfrissebb jQuery verzióra ugrani, csak az több buktatót rejthet magában.
x gon' give it to ya
-
fordfairlane
veterán
válasz fordfairlane #3171 üzenetére
x gon' give it to ya
-
Cathfaern
nagyúr
válasz fordfairlane #3171 üzenetére
Felmerülő problémák / módszerek alapján felteszem nincsenek automatizált tesztjeik. Márpedig akkor sokkal egyszerűbb ugrani egyszer verziót, és egyszer végigtesztelni meg javítani mindent, mind végigmenni 5 verzióváltáson, és 5x végigtesztelni mindent. De persze ez csak az én meglátásom.
-
estro
csendes tag
Üdv!
Van egy dinamikus menüm ami betölti ezzel a scriptel egy content nevű divbe az oldalakat amire a menüben kattintok.
$('a').click(function() {
var page = $(this).attr('href');
if(page!="")
$('#content').load(page);
return false;
});
Hogyan lehetne megoldani, hogy pl ebbe a divbe betöltött jsp a servlet által visszaküldött oldalt is ebbe a divbe rakja bele? Tehát van mondjuk egy login jsp és a gombra kattintva a divbe töltse be a választ pl Töltsd ki a mezőket. A probléma az, hogy a gombra kattintva egy új oldalra dob és így eltűnik a menüm. Vagy hogy szokták megcsinálni a dinamikus menüket? Mert így nem változik az url ami nem tudom nagy baje .[ Szerkesztve ]
-
Sk8erPeter
nagyúr
válasz martonx #3175 üzenetére
Elvileg a return false; miatt erre nem lenne szükség, mivel ez jQuery event handlernél olyan, mint meghívni az event.preventDefault ÉS event.stopPropagation metódusokat. ([link]) Persze bajt nem okoz, ha explicite is kiírod. De nem innen ered a problémája.
(#3174) estro:
Nem ártana a selectort kissé specifikusabbra állítani, mivel így MINDEN linkre ráaggasztod az eseménykezelőt, ami nemcsak felesleges, de káros is. A kódod ennyi alapján jónak tűnik, de ennyi infóból lehetetlen megmondani, mégis miért nem működik, a többi kódodat nem látjuk.
Egyébként igen, baj, ha nem változik az URL, erre is lehet JavaScriptet használni, nézd meg a History API-t.Sk8erPeter
-
estro
csendes tag
válasz Sk8erPeter #3176 üzenetére
Igazából minden linket oda szeretnék irányítani, de majd ha kell akkor átírom h csak egy divre legyen igaz vagy valami. Az url átírásnak majd utána nézek, mert látom már tényleg baj ha nem változik.
Csináltam egy példát a problémára:
index.jsp
<body>
<ul><li><a href="1.jsp">Link</a></li></ul>
<ul><li><a href="2.jsp">Link2</a></li></ul>
<div id="content"></div>
<script src="http://code.jquery.com/jquery-1.11.2.min.js"></script>
<script type="text/javascript" src="aaa.js"></script>
</body>
Az aaa.js az amit linkeltem. A linkeket ugye nem új lapon nyitja meg hanem belerakja a divbe szépen.1.jsp
<form id="target" action="ClickME" method="get">
<input type="text" name="userName">
<input type="submit" value="Go">
<script src="http://code.jquery.com/jquery-1.11.2.min.js"></script>
<script type="text/javascript" src="bbb.js"></script>
</form>ClickME ez a servlet de igazából csak az fontos h át dob egy másik oldalra (amit kellene betölteni ugyan abba a divbe)
//...
private final String userID = "asd";
//...
String user = request.getParameter("userName");
if(userID.equals(user)){
response.sendRedirect("success.jsp");
}else response.sendRedirect("3.jsp");Próbáltam ezzel a scriptel (bbb.js), de az a baj, hogy egyből átugrik a 3.jsp-re(csak akkor kellene ha nem egyezik az textből kiolvasott érték a userID változóval) függetlenül attól mi van a textboxban (mert ugye ha "asd" szöveg van benne akkor a success.jsp-t adná vissza)
$( "#target").submit(function( event ) {
var page = $(this).attr('action');
$('#content').load(page);
event.preventDefault();
});Amit még nem értek, hogy a JSTL formon (mert eredetileg arra akarom megcsinálni) nem lehet id se class se name attribútumot adni így nem tudok hivatkozni a jqueryvel arra a formra. Azt olvastam, hogy a JSTL jobban olvasható meg rövidebb, de én csak szívok vele.
Az is lehet, hogy amin elindultam módszer egyáltalán nem jó. Valakinek van ötlete?
[ Szerkesztve ]
-
Sk8erPeter
nagyúr
Mi van a success.jsp-ben, meg a 3.jsp-ben? Nehéz ennyiből mit mondani. Először hozz létre akár simán egy szöveges fájlt, amibe beleraksz valami hablaty szöveget, előbb töltse be annak a tartalmát AJAX-szal a linkre kattintás után, ha ez működik, csak azután rakd mögé az üzleti logikát. Ja, és amúgy ne rakd bele mindegyik response-ba a jQuery kódját is.
Szóval először próbáld leszűkíteni a problémát, és persze nézd a böngésző fejlesztőpaneljén (Ctrl+Shift+I), hogy mi történik.Sk8erPeter
-
estro
csendes tag
válasz Sk8erPeter #3178 üzenetére
succes.jsp:
<h1>Success</h1>
3.jsp:
<h1>Három</h1>
Az megy, hogy html vagy jsp oldalt bele töltök a divbe. A baj, hogy ha üzleti logikát is használok, akkor az rossz jsp-t ad vissza (a jquery script nélkül jó jspt kapok, de akkor ugye nem a divbe tölti bele). Mindig a 3.jsp tölti bele a divbe, mintha folyton üresnek értelmezné a textboxot, pedig írok neki szépeket D: .
Ajaxot nincs kedvem átbogarászni most, de mind1, marad akkor statikus és majd utána nézek jobban mifán terem egy dinamikus weboldal. Elnézve a nagyobb webáruházakat ők is valami ilyesmit csinálnak, hogy egy divbe töltik bele a weblapokat, de találtam láthatatlan iframet is, gondolom valami vezérlésre van ott, szóval kicsit bonyolultabb lehet a történet, de most már haladnom is kellene ezzel a beadandóval :S. -
Sk8erPeter
nagyúr
Na, most, hogy picit részletesebben írtál a problémáról, már legalább értem, mi a baj. Tehát ezek szerint alapvetően annyiból jól működik a scripted, hogy a form elküldése után betöltődik AJAX-szal a tartalom, de a gond az, hogy mindig ugyanaz az oldal töltődik be, nem teljesül az elvárt feltételed, esetedben mindig a 3.jsp töltődik be. Teljesen jogosan sosem fog teljesülni az if(userID.equals(user)) feltétel, hiszen nem is adod át az űrlapban lévő userName nevű mező értékét a scriptnek, nincs ellátva ilyen query stringgel a lekért URL, tehát a request.getParameter("userName") mindig null-lal fog visszatérni. Szóval akkor a szerveroldal sehonnan nem tudhatja, hogy Te mit is akartál.
Ez esetben két dolgot tudsz tenni: vagy hozzáfűzöd "kézzel" a .load() metódusnak átpasszolt URL-hez a userName query stringet, DE EZT NE (inkább felejtsd el, csak azért említettem, hogy értsd, hogy úgy egyébként működne), sokkal inkább NE a .load() függvényt használd, hanem az .ajax()-ot (vagy valamelyik shorthand-társát).Tehát
$( "#target").submit(function( event ) {
var page = $(this).attr('action');
$('#content').load(page);
event.preventDefault();
});HELYETT
var $contentContainer = $('#content');
$("#target").submit(function( event ) {
var $form = $(this);
var formActionUrl = $form.attr('action');
var userNameInput = $form.find('input[name="userName"]').val();
$.ajax({
method: "GET",
url: formActionUrl,
data: { userName: userNameInput },
success: function(data, textStatus, jqXHR) {
$contentContainer.html(data);
},
error: function(jqXHR, textStatus, errorThrown) {
// TODO: értelmesebb hibakezelés
alert('There was an error when processing the request...');
}
});
event.preventDefault();
});Elgépelés lehet benne, most ezt csak ide pötyörésztem be.
Elvileg így mennie kell.Sk8erPeter
-
estro
csendes tag
válasz Sk8erPeter #3180 üzenetére
Ez működik. Csak nekem úgy általános megoldás kellett volna. Tehát több jsp lap van, és pár servletel is kommunikál (aminek a válasza nem a divbe kerül). Ezt az ajax scriptet ahogy néztem át kellene írni minden egyes servletes jspre pl külön a loginra külön a regisztrációra. Egyenlőre iframe-val megoldottam és majd ha végeztem a többi funkcióval vissza térek erre az ajax-ra. Azért köszi a segítséget.
-
Sk8erPeter
nagyúr
Nyilván ezt a megoldást lehet általánosabbá is tenni, sőt, akár lehetne kliensoldali keretrendszert/library-t is felhasználni a célra, amivel nagy eséllyel sokkal rövidebben is "megfogalmazhatod" kódszinten az igényeidet, ez egy útmutató volt arra, hogy hogyan tudod megoldani azt a konkrét problémát, amire rákérdeztél. Mivel nem fejtetted ki a konkrét igényeket, hogy milyen módon szeretnéd általánosítani, ezt kitalálni magunktól nem tudjuk.
Amúgy hogy most mitől jobb megoldás ennél az, hogy iframe-be töltöd be, az számomra rejtély.
Mindenesetre remélem, ez azért valamennyire segített elindulni az úton.Sk8erPeter
-
biker
nagyúr
Üdv Urak!
Hl tudok elérni olyan listát, a jquery szerint visszaadott file típusok mik? értem ezalatt
var acceptFileTypes = /^image\/(jpg|jpeg|png|gif)|application\/(msword|vnd.openxmlformats-officedocument.wordprocessingml.document|vnd.ms-excel|vnd.openxmlformats-officedocument.spreadsheetml.sheet|vnd.ms-powerpoint|vnd.openxmlformats-officedocument.presentationml.presentation|vnd.openxmlformats-officedocument.presentationml.slideshow|pdf)$/i;Ezt szeretném kibővíteni zip, gz, bz, tar, 7z, stb stb formátumokkal, de hogy biztosan mindet helyesen ismerje fel, mint ahogy képnél javasol a jpg és jpeg megnevezés is, nincs-e véletlen ezeken belül is több alverzió
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 |
-
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
válasz Sk8erPeter #3184 üzenetére
[link]
Ez a hivatalos változat, ami ebben nem szerepel, az kötelezően x- előtagos vendorfüggő típus.biker: csak olyan van, hogy image/jpeg, olyan nincsen, hogy image/jpg. A böngészők általában saját vagy az OS által nyújtott kiterjesztéslista alapján találják ki, hogy adott fájlhoz milyen MIME type tartozik.
tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek
-
biker
nagyúr
Köszi mindkettőtöknek. a mime type kinyerése megvan, nekem azért kellene teljes lista, mert korábban sokat szívtam azzal, hogy egy .jpg gépre a sok oprendszer sok böngészője 3 féle módot tudott, és a userek meg szóltak, nem jó
vol image/jpeg, image/jpg, és image/pjpeg egyik esetben. rég volt, de volt.
És amint látom az alapján, aki elkezdte ezt írni, valamiért a doc/xls/ppt ellenrzésbe is betette az összes opendocument verziót is, így pl fel tudok tölteni pages filet is. nem csak docot.Nos, nem szeretném, ha mondjuk símán beírom |zip|rar|bz stb és aztán rájönni, multipart rar esetén az r01 r02 nem megy fel, és sorolhatnám.
A kapott lista alapján remélem a legtöbb verziót bele tudom tenni az ellenőrzésbe. kivéve futtatható alkalmazásokElektromos 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
válasz Sk8erPeter #3187 üzenetére
"Hát a dqdb kolléga által bedobott lista eléggé kimerítő választ ad a kérdésedre. "
Én is így érzemElektromos 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 |
-
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
-
veterán
Sziasztok!
Ebben, ennél a sornál:
$(detailsBtn).click(loadMovieDetails(link1));miért hívódik meg a loadMovieDetails(link1) függvény?
És a táblázatban lévő gombra kattintás után miért nem?[ Szerkesztve ]
https://play.google.com/store/apps/details?id=com.lovemap.lovemapandroid
-
veterán
válasz Oppenheimer #3191 üzenetére
Így oldottam meg:
$(document).on('click', '.details_button', function(event) {
console.log(event.target.name);
console.log('button pressed');
});Dinamikusan hozzáadott html elementeknél így kell eseménykezelőz hozzáadni állítólag... pedig ebben a példában működik a .click() is.
Ennek majd érdekelne a magyarázata.
https://play.google.com/store/apps/details?id=com.lovemap.lovemapandroid
-
wis
tag
válasz Oppenheimer #3191 üzenetére
loadMovieDetails(link1)
Ezzel meghívod a loadMovieDetails függvényt a link1 paraméterrel, majd a visszatérési értéket (ami itt undefined) átadod a click eseménykezelőnek.
A másik példában ($(button).click(button_click_handler);) csak a függvény nevét adod át. Nem mindegy.
-
veterán
-
wis
tag
válasz Oppenheimer #3194 üzenetére
Nem akarlak elkeseríteni, de backenden is így hívjuk meg a függvényeket
-
veterán
-
wis
tag
válasz Oppenheimer #3196 üzenetére
Még jobb lenne, ha az interpreter magától rájönne a gondolatainkra
Amúgy ilyet lehet:
$(detailsBtn).click(function(){loadMovieDetails(link1)}); -
Sk8erPeter
nagyúr
válasz Oppenheimer #3194 üzenetére
"És 1 sz*r*s paraméter miért számít ennyit? De utálom a frontendet."
Ennek semmi köze nincs a frontendhez, még a jQuery-hez sem (főleg, hogy ugyebár a JavaScript szerveroldali nyelv is), sőt, még a JavaScripthez sincs úgy konkrétan köze, mert ez nem csak itt működne így. Igazából ez elég alapvető dolog, nem igazán tudom, mit nem értesz ezen, ha a Java topicban elvileg ennél azért egy picit komplexebb kódokkal vagy elfoglalva. Attól még, mert akár anonim függvényt is át lehet adni paraméterként, ennek a működése nem tudom, miért meglepő.Egyébként ha jól értem, mit szeretnél, ha nagyon akarod, .bind()-dal is meg tudod oldani, vagy ha áttekinthetőbben szeretnéd (hogy a kódra ránézve egyből tudd, mit csinálsz ott), akkor válaszd a wis által javasolt módszert.
[ Szerkesztve ]
Sk8erPeter
-
veterán
válasz Sk8erPeter #3198 üzenetére
Leírtam utána, hogy mit nem értettem ezen. Be akartam állítani eseménykezelőnek egy függvényt, aminek van 1 paramétere. Arról meg hogy a JS-t használják szerveroldalon, meg van a véleményem.
Egyébként igen, wis javaslata a legjobb erre.
[ Szerkesztve ]
https://play.google.com/store/apps/details?id=com.lovemap.lovemapandroid
-
Sk8erPeter
nagyúr
válasz Oppenheimer #3199 üzenetére
Igen, ugyanezt egész pontosan értettem az előbb is, és erre válaszoltam. Még mindig nem tudom, miért olyan meglepő, hogy így működik (hogy meghívódik a függvény ott helyben abban a formában, ahogy át akarod adni a paramétert), ha már más programozási nyelvekben is mozogsz, és nem most kezdted. Meglehet a véleményed a JavaScriptről, de ez nem JavaScript-szintű probléma, hanem alapvető programozási ismeret. Félre ne értsd, semmi gond nem lenne azzal, hogy elsőre nem tiszta, hogy így nem működik, amit szeretnél, csak furcsán jön ki picit, hogy a nyelvet kezded el fikázni egy olyanért, ami speciel pont nem sorolható a nyelv hibái közé (pedig aztán bőven lehetne sorolni olyat, de ez nem az).
[ Szerkesztve ]
Sk8erPeter
Új hozzászólás Aktív témák
- ThinkPad P16 Gen1 16" QHD+ IPS i7-12850HX RTX A2000 32GB 1TB NVMe magyar vbill ujjlolv gar
- Eladó iPhone 11 Pro 256 GB Midnight Green szép állapotú - 12 HÓ GARANCIA - S1530
- Tobii Eye Tracker 5
- MacBook Pro 16" M1 Pro Chip 32GB RAM/ 1TB SSD 27% Áfa
- SMSL DO400 asztali DAC és fejhallgató erősítő, Bluetooth 5.1 LDAC MQA-CD 32bit 768kHz DSD512 eladó
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen