- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Milyen okostelefont vegyek?
- Samsung Galaxy S23 Ultra - non plus ultra
- Mobil flották
- Nothing Phone (1) - nem semmi (2)
- iPhone topik
- Mindent megtudtunk az új Nokia 3210-ről
- Samsung Galaxy A54 - türelemjáték
- Netfone
- Xiaomi 13 Lite - dögös vagy, Civi
Hirdetés
-
Sokat fogyaszt az AI, egyre több az adatközpont, kell az atomenergia
it Az AI-t kiszolgáló adatközpontok olyan nagy energiaigénnyel bírnak, hogy egyre több atomenergiára van szükség.
-
A virágcsokor mellé hardvert is ajándékozhatunk anyák napján
ph A héten desktop PC-k, monitorok, gamer kiegészítők és házak vannak a kirakatban.
-
Spyra: akkus, nagynyomású, automata vízipuska
lo Type-C port, egy töltéssel 2200 lövés, több, mint 2 kg-os súly, automata víz felszívás... Start the epic! :)
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
Ráadásul a hivatalos honlapon is ajánl alternatívákat egyből, idézem:
"While Thickbox had its day, it is not maintained any longer, so we recommend you use some alternatives.
colorbox
jQueryUI Dialog
fancybox
DOM window
shadowbox.js"Sk8erPeter
-
Sk8erPeter
nagyúr
Semmi értelme az ilyen rosszindulatú hangvételű hozzászólásoknak, egyszer sem segítettél érdemben, csak azt nyomattad neki, hogy ugyan tanulja már meg a debuggoló eszközök használatát... ha ő az alertekkel szeret rájönni a hiba okára, akkor tegye azt, de leoltástól nem fog előrébb jutni.
===
(#22) jeges: "performancia" - kérlek, ne! Létezik egy magyar szó, ami ennél sokkal szebb: teljesítmény. Ez a "performancia" nagyjából annyira értelmes szó, mint az "applikáció". (Olyan szó sincs, ha már magyarra fordítjuk, fordítsuk jól: "alkalmazás".)[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Túlbonyolítod.
Ha azt szeretnéd, hogy az első jelenjen meg, akkor az első "fo" osztályú div leftcontent osztályú gyerekelemének a display tulajdonsága legyen mondjuk display:block, a többi leftcontent mind induljon elrejtett állapotból (display:none).A többihez tartozó kód:
<script type="text/javascript">
$('.almenu').click( function( ){
// ha a testvérelem (.leftcontent) látszik amúgy is, simán eltüntetjük
if( $(this).next().is(":visible") ){
$(this).next().hide(500);
}
else{
$('.leftcontent').hide(500);
$(this).next().show(500);
}
});
</script>Sk8erPeter
-
Sk8erPeter
nagyúr
-
Sk8erPeter
nagyúr
Egy kezdőnek nem olyan könnyű ráállnia ezen dolgok használatára, ezt Te is tudhatnád, nyilván Te sem voltál vérprofi, amikor elkezdtél foglalkozni a dologgal, kezdetben nyilván rengeteg kérdés merült fel benned, rengeteget gányoltál, olyan kódokat kreáltál, amiken utólag, több tapasztalat birtokában már csak nevettél, és volt olyan, amire valahogy nem akart ráállni az agyad, aztán amikor végre rájöttél a megoldásra, vagy épp rávezettek, esetleg megmondták a megoldást, olyat csaptál a homlokodra, hogy ott maradt a tenyered helye...ezeken a fázisokon szerintem minden kezdő átesik.
Néha sokkal többet ér az a segítség, amikor valaki megmutatja neki azt a lehetséges megoldást, amivel sokkal egyszerűbben megoldható az egész (szerintem én és jeges is törekedtünk erre).
Te valóban beszéltél web developer eszközökről, de nem mondtad el, egyáltalán hol találja, hogyan kellene azt használni (ha már...!), csak furcsa stílusban érzékeltetted, hogy türelmetlen vagy: "Na ne hülyéskedjünk már alertekkel 2011-ben. A te érdekedben, könyörgök nézd már meg egy web developer eszközzel." Hát ez valóban nagy segítség. Meg ez is: "Az, hogy szerinted mi hajtódik végre az ifnél az egy dolog.", stb.
Konkrét kérdésekre adtál kitérő választ, minden esetben a web developer eszközök fontosságát kihangsúlyozva, ami tényszerű igazság, de nem jutott vele előrébb.
A kérdésedre saját magad meg is adtad a választ:
"Ki olt itt le kit?"
A válaszod:
"A hangnememet jogosan lehet kritizálni, sajnos a türelem nem az erősségem "Na, de ne egymással vitatkozzunk, nem az a topic célja, csak akkor már én is elmondtam a szempontokat.
Ha már homár, többek közt a Chrome Developer Tools, a Firefox Firebug, valamint az Opera Dragonfly az, ami ajánlható JavaScript-debuggolási, HTML-manipulálási célokra, konzolra való kiíratásra, stb.
Ez általában a jobbklikkes menüből érhető el, pl. "Inspect Element" / "Elem kivizsgálása" vagy "Elem vizsgálata" menüpont alatt (vagy ehhez nagyon hasonló lesz a neve).
Itt érdemes megismerkedni a különböző fülekkel (akár a linkelt oldalakon keresztül, vagy található rengeteg ismertető is ezekhez).Sk8erPeter
-
Sk8erPeter
nagyúr
"az Operáéról sem szóltam, de hát ki használ Operát?"
Pl. én... és azt hiszem, még jópáran... Ez milyen hozzáállás már?
Fejlesztőként főleg szégyen így hozzáállni...
Statisztika w3schools szerint: [link]
Nyilván az a 2,6% teljesen elhanyagolható...Szerk.: "már rég megoldotta a segítségem alapján"
ja igen, nyilván a Te segítséged olyan mértékben hatékony volt, hogy a jövőben is mindenki problémáját meg fogja oldani.
Némi egoizmus sugárzik a hsz.-eidből, már bocsánat.
De nem akarlak téged meggyőzni semmiről, csak valahogy olyan stílust alkalmazol, amitől az embernek néha feláll a szőr a hátán.[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Kétszer include-olod a jQuery-t, meg kétszer szerepel a $(document).ready... rész.
Elsőre vonatkozóan:
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
.......
<script type="text/javascript" src="js/jquery.js"></script>Döntsd el, melyiket használod, pl. használd az elsőt csak, utóbbit egyszerűen szedd ki a kódból.
Valami ilyesmi legyen a kódod (a <head> részbe kerüljön!!):
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="js/jquery.tinyscrollbar.min.js"></script>
<script type="text/javascript" src="js/jquery.easing.js"></script>
<script type="text/javascript" src="js/script.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#scrollbar1').tinyscrollbar();
$('#example2').lofJSidernews({
interval: 4000,
easing: 'easeInOutQuad',
duration: 1200,
auto: true
});
});
</script>És használd a Programkód gombot, hogy áttekinthetőbb legyen a kódod. :) Miután beillesztetted a kódodat, jelöld ki, majd mehet a Programkód gomb.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Rossz hírt kell közölnöm, még mindig nem vagyunk látnokok, hogy kitaláljuk, mit ronthattál el, ha nem mutatod meg a kódodat...
Könyörgöm, ne szemetelj már tele minden topicot a pontosan ugyanilyen jellegű kérdéseiddel kód nélkül (kábé az összes kérdésed ilyen: "nem működik, mi lehet a baj?" ).
HIdd el, nagyon szívesen segítünk, de gondolj bele egy kicsit, szerinted egy autószerelő hogyan tudná megjavítani az autó hibáit, ha még csak nem is látta a kocsit?Sk8erPeter
-
Sk8erPeter
nagyúr
"Veled mindig össze kell akadnom ?"
Pontosan ezt a kérdést tettem fel magamban én is, amikor megláttam a szokásos stílusú hsz.-edet.
Mellesleg milyen érdekes, másoknak sokat tudtam segíteni, mert ők normálisan tették fel a kérdéseiket, vagy legalább visszakérdezésre, esetleg arra irányuló kérésre, hogy fejtsék ki jobban, rakjanak fel konkrét kódot, nem nekik állt feljebb, hanem aktívan közreműködtek a SAJÁT problémájuk megoldásában..."ODA VAN LINKELVE MINDEN CSAK NYISD KI A SZEMED!"
Először is gratulálok a stílushoz (mely ugye maga az ember).
Másodszor ezek szerint már magát a választ sem érted. Nem azt mondtam, hogy nincs ott a cím, ahonnan a plugint letöltötted (mellesleg nem linkelted be, ahhoz használni kellene a Link gombot is - te csak címet másoltál be ), hanem azt, hogy nem látjuk azt a kódot, amit te egész konkrétan használtál.
Lehet, hogy számunkra is segítene a gyorsabb segítségadásban, mert nem nekünk kéne kibányásznunk a szükséges kódot, könnyen lehet, hogy pl. még mi sem használtuk az adott beépülőt, de ha te bemásolnád a kódodat, akkor azt felhasználva tudnánk segíteni a feladat megoldásában, a kód debuggolásában - pl. a te kódodat csak simán kimásolnánk, és kipróbálnánk saját környezetben; de így totálisan kód nélkül csak annyit tudunk tenni, hogy kimásoljuk a hivatalos oldalról a működő kódot."Senki nem mondta hogy rossz a kód"
Tudom, hogy nem mondtad, de attól még véletlenül kerülhetett bele hiba, olyan is előfordul néha, hogy a demók oldalára tesznek fel véletlenül apró hibát tartalmazó kódot."De neked válaszolnod se kell. Hanyagold!"
Rendben, ez menni fog.
Bár próbálgattam a lejátszót, ha már szó volt róla, de azt mondtad, ne segítsek.Mégis egy gyorstippet azért adok, hátha előrébb visz: a support oldalon lehet hasznos infókat találni az esetleges problémákról: [link], amelyek lehetnek multimédia-kódolással és böngészőtámogatottsággal kapcsolatosak... Utóbbiak a kulcs a dologhoz, de azt mondtad, ne adjak konkrét segítséget, OK.
Szerk.: ja, és még egy: HASZNÁLD a "Válasz" linket, amikor bárkinek a hsz.-ére reagálsz, mert így csak kitalálni lehet, épp kinek adtál választ (amikor több hsz. is születik a tiéd és valakié közt, nehéz eldönteni, persze speciel nem épp most).
Még egy tanács: ezzel a stílussal nem sokra fogsz menni a Prohardver fórumain, senki nem szeret olyasvalakinek segíteni, aki egyszerűen nem hajlandó még külön többszöri kérésre sem saját kódot mellékelni (nem is tudom, hányszor kellett neked szólni, hogy ne úgy tegyél fel kérdést, hogy az ember csak a sötétben tud tapogatózni), ami alapján eldönthető lenne, hol van a hiba, ráadásul sokszor igen érdekes stílusban reagál, és nem tűnik aktív közreműködőnek a probléma-megoldásban.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Sk8erPeter #40 üzenetére
Mellesleg ubid, majd szólj, ha esetleg mégis érdekel a konkrét válasz, hogy miért is nem működött az általad említett böngészőkben, nálam sikerült működésre bírni. Csak kicsit normálisabb stílusban légy szíves.
Sk8erPeter
-
Sk8erPeter
nagyúr
Ez a "disznók elé gyöngyöt" elég jó hasonlat volt jelen esetben. Hát köszi, nem egyszerű megmaradni ilyenkor a kulturált stílus keretein belül, de a legrosszabb, ha az ember lesüllyed arra a szintre, ahol legyőzhetik az ott tartózkodó emberek a rutinjukkal.
Már párszor szóltam a srácnak, így a szemében én lettem a rohadék megmondóember, ami mondjuk nem túl jó szerep, valószínűleg ez nem tetszik neki, dehát legalább meg kell próbálni terelgetni az embereket a netikett felé, hátha... Amúgy teljesen igazad van, néha nem érdemes válaszra méltatni az ilyen jellegű hsz.-eket.Sk8erPeter
-
Sk8erPeter
nagyúr
Bocs, hogy belekontárkodom, nagyon sok részletből kimaradtam, és nincs is időm elolvasni az egész korábbi társalgást erről a súgó-megjelenítős dologról, de tulajdonképpen minek játszol a visibility CSS-tulajdonsággal? Van ezzel valami különösebb célod? Csak kavarja az egészet, a slideUp/slideDown tulajdonság állítgatja a display property-t (és azzal együtt nyilván folyamatosan dinamikusan változtatgatja pl. a height tulajdonságot), annak elégnek kellene lennie.
Ezentúl tulajdonképpen nem látom be, miért is van szükség erre az id-t szétbontós dologra split() függvénnyel, nagyon rugalmatlan megoldás, könnyű elrontani. Ha már ilyen módon van felépítve, nyugodtan lehetne a siblings() VAGY prev() vagy next() függvényeket használni. Egyébként is érdemes lenne egy nagyobb div-be vagy hasonlóba bepakolni magát a kérdőjelet, plusz a hozzá tartozó súgót, hogy logikailag is összetartozzanak, és akkor máris el lehet kerülni azt, hogy az id-k nevéből kelljen kisajtolni egy számot, majd erre hivatkozni, stb... melós. Amúgy amikor azt az esetet veszem, amit a 3. pontban írtál, látszik, hogy a display block-ra állítva marad, csak a visibility változik. Mintha egyáltalán nem törlődne az időzítés a clearTimeout-nál.
(Megjegyzés, hogy szerintem az ilyen elnevezések, mint a var css; és ehhez hasonlók, nem túl szerencsések, mert könnyen megkavarhatják az embert hosszabb kódnál (lásd ugyanilyen nevű függvény is van jQuery-nél). Lehetne inkább var dt_display; vagy valami ilyesmi, csak ne hasonlítson foglalt nevekre.)
Egyébként elméletileg nem lenne szükség az each() függvényre, ahogy ugye itt a slideUp() függvénynél is sok div-et tüntet el egyszerű $("div").slideUp(); segítségével (ciklikusan végigmegy az összes egyező elemen).Igazából nem is kéne if-ekkel vizsgálgatni, miután végighaladtál ciklussal az összes elemen, hogy meg van-e jelenítve, ahogy most csinálod ( if(css == "block") ), hanem kattintáskor
1.) törölni az összes beállított timeout-ot
2.) egyszerűen a kérdőjelre való kattintásra vonatkozó (click) tulajdonságra rákötni, hogy az összes súgót tartalmazó elemet (nálad dt-t) slideUp-olja - még akkor is, ha egyetlen egy elem sincs megjelenítve, ez úgyis annyira gyorsan történik, hogy itt rohadtul nem számít, hogy végigvizsgálgattad-e egyesével; sőt, ezt megteszi helyetted a jQuery! Nyilván ha meg van jelenítve, akkor animálva eltünteti, a display-t a végén none-ra állítva, ha nincs, megy tovább a következő talált elemre.
3.) az adott elem melletti súgót tartalmazó elemet (buborékszerűséget) megjeleníteni slideDown-nal (vagy ahogy épp meg akarod jeleníteni a súgót)
4.) beállítani a setTimeOut-ot a kívánt időmennyiségre, aminek a végén slideUp-olod a súgót, hogy eltűnjön.Szóval szerintem bőven lehetne egyszerűsíteni a kódon.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Speeedfire #269 üzenetére
Ilyen fölső (vagy máshova is rakható) sávos megoldás, mint ez vagy ez? Mondjuk még hatmillió ilyen kis beépülőt lehet találni.
Amúgy meg nyilván bármi megoldható, ez is saját módon is.
Akár jQuery UI-os dialógusablakot is felvillanthatsz adott ideig, aztán eltünteted - az open esemény bekövetkeztekor elindítasz egy számlálót, annak lejártakor pedig meghívod a dialógus close metódusát...Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Speeedfire #271 üzenetére
Ja, sejtettem. Az előzőekkel is lehet, de akkor újabb példa: [jQuery BlockUI], itt nézd az "Auto-Unblock - Sets a timer to unblock after a specified timeout." részt.
De amúgy ilyen időzítőt a jQuery UI Dialog-hoz sem nehéz beállítani (vagy bármelyikhez).Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Speeedfire #273 üzenetére
Jaja, amúgy az a Growl is nagyon jól néz ki, szerintem eléggé fasza, ha így mutatsz egy rövid üzenetet a felhasználónak. Amúgy jQuery UI theme-ekkel is össze lehet hozni. Meg hát elég durván eseményvezérelt, mármint minden apróbb történés (pl. amikor elsötétül a kép, vagy megjelenik az üzenet, bezáródik az overlay, stb.) kivált valami eseményt, amire lehet függvényeket kötni, az meg nagyon hasznos tud lenni, ha testre akarod szabni.
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Speeedfire #284 üzenetére
Szerintem az a gáz, hogy a linkelt példaoldalon valahogy beállítja a default style-t, azt nem néztem meg, hogyan, és így beállítódik a theme-default class a wrapper div-ben.
Tehát a kép körül van egy ilyen szülődiv:
<div class="slider-wrapper theme-default">
...
</div>Gondolom ezt a theme-default class-t pedig a NivoSlider állítja be.
Amúgy kemény a megrendelőd... "Úgy elrebben az idő körülöttünk, hogy észre sem vesszük" Jót röhögtem ezen a mondaton... akart valami bölcset mondani, és az jött ki, hogy "elrebben"? Meg a logóban "Designe" (e betű) Mondjuk az se lenne rossz, ha egy fotósnak jó fotói lennének. Na jó, nem gonoszkodom tovább.
Szerk.: és ja, az volt, amit írtam, itt a tutorialban írják is, hogy a default theme-hez az a wrapper div legyen, amiről beszéltem.
Az Inspect Elementes bogarászásnál ez mennyivel gyorsabb lett volna.[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Brown ügynök #288 üzenetére
Nem muszáj minden alkalommal meghívni újra és újra ezt a függvényt, jó lehet a .live() függvény is - tulajdonképpen erre való (létező és jövőben létrehozott elemekre való eseménykötés).
Példa:
$('.my_input_class').live( 'keydown', function() {
// your task........
});Sk8erPeter
-
Sk8erPeter
nagyúr
Igazad van, elfelejtettem, mert jelenleg épp egy 6-os Drupalon dolgozom, ahol 1.3.2 a maximális ajánlott verzió, ezért hirtelen kiment a fejemből, hogy azóta már felváltotta az on().
Az igaz, hogy deprecated, viszont hogy "meg amúgy se ajánlott a használata", az nem tudom, mire vonatkozik azonkívül, hogy nyilván érdemes az újabb változatot használni függvényekből is, és elfelejteni a deprecatedet. De tudsz valami káros mellékhatásról a jelenlegi újabb verziók esetén, ha a .live()-ot használja valaki?(#292) Brown ügynök: nincs mit, de igaza van Frigo-nak annyiban, hogy ha 1.7 verzió fölötti jQuery-t használsz, térj át az on()-ra, egy jelenlegi projekt miatt hirtelen megfeledkeztem erről.
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Brown ügynök #331 üzenetére
Hibák:
- adott azonosítójú HTML-elemből csak egy legyen! Nálad egy for ciklusban generálódik le annyiszor "pager" id-val rendelkező <ul> lista, amilyen hosszú a data. (értsd: for ciklusba raktad az <ul id='pager'> legyártását)
- az <ul> lista közepébe egyszer csak beszúrsz (hozzáfűzöl) a <li> elemek után egy <p> bekezdést is, aztán folytatod a <li>-kkel. Ez így nem valid.
<ul>-en belül csak <li>-k legyenek, azon belül lehet tartalom, tehát akkor már egy <li>-be rakd a <p>-t.(#335) Brown ügynök : ahogy Karma is elmondta, NEM szükséges a parseJSON megfelelő használat esetén (hmm, emlékeim szerint a dataType-ot sem feltétlenül szükséges minden esetben megadni, bár én meg szoktam, hogy könnyen követhető legyen a kód, jól látható legyen, milyen formában várom az adatokat).
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Brown ügynök #343 üzenetére
Igazából csak kiegészíteném a többieket.
Ami a második részben szerepel, nem könnyen bejárható, egyetértek, hogy bővítsd ki plusz egy egyértelmű taggal, ami jelzi, hogy itt mondjuk termékek következnek.Jó csúnyán leegyszerűsítve az, amit most generálsz, azt PHP-oldalon pl. így lehet előállítani (a lényeg szempontjából mindegy, PHP-oldalon mondjuk objektumokként kéred-e le vagy asszociatív tömb formájában; ezenkívül nyilván Te adatbázisból kéred le ezeket, tehát ebből a szempontból eltér a dolog, meg abból is, hogy ott egy normális ciklus formájában adod át az adatokat, de a lényeg érthető):
$products_page = array();
$products_page['page'] = 2;
$products_page['linkoffset'] = 0;
$products_page['maxpage'] = 3;
$products_page[] = array(
'kep' => 'airtokoul.jpg',
'nev' => 'Air Tokoul ',
'marka' => 'Nike',
'regi_ar' => '20000',
'uj_ar' => '18000',
);
$products_page[] = array(
'kep' => 'airtokoul.jpg',
'nev' => 'Air Tokoul ',
'marka' => 'Nike',
'regi_ar' => '20000',
'uj_ar' => '18000',
);
$json_return_value = json_encode($products_page);
echo $json_return_value;Ebből a generált JSON:
{"page":2,"linkoffset":0,"maxpage":3,"0":{"kep":"airtokoul.jpg","nev":"Air Tokoul ","marka":"Nike","regi_ar":"20000","uj_ar":"18000"},"1":{"kep":"airtokoul.jpg","nev":"Air Tokoul ","marka":"Nike","regi_ar":"20000","uj_ar":"18000"}}Na ehelyett a PHP-oldalról előállítható kódot ki kéne egészítened valahogy így (lásd a plusz 'products' indexet):
$products_page = array();
$products_page['page'] = 2;
$products_page['linkoffset'] = 0;
$products_page['maxpage'] = 3;
$products_page['products'][] = array(
'kep' => 'airtokoul.jpg',
'nev' => 'Air Tokoul ',
'marka' => 'Nike',
'regi_ar' => '20000',
'uj_ar' => '18000',
);
$products_page['products'][] = array(
'kep' => 'airtokoul.jpg',
'nev' => 'Air Tokoul ',
'marka' => 'Nike',
'regi_ar' => '20000',
'uj_ar' => '18000',
);
$json_return_value = json_encode($products_page);
echo $json_return_value;Na és ebből a generált JSON már így néz ki:
{"page":2,"linkoffset":0,"maxpage":3,"products":[{"kep":"airtokoul.jpg","nev":"Air Tokoul ","marka":"Nike","regi_ar":"20000","uj_ar":"18000"},{"kep":"airtokoul.jpg","nev":"Air Tokoul ","marka":"Nike","regi_ar":"20000","uj_ar":"18000"}]}Ez utóbbit pedig jQuery-vel - szerintem jól átlátható módon - így tudod bejárni:
$ul_obj = $('<ul>', {
id: 'products-list'
});
for(product_index in data.products){
$li_obj = $('<li>', {'class': 'products-list-element'});
$li_obj.html(
data.products[product_index].nev
);
$li_obj.appendTo($ul_obj);
}
$ul_obj.appendTo('#content-area');Hátha ez így segített valamit.
Kérdezz, ha valami nem tiszta.[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Brown ügynök #350 üzenetére
Nincs mit!
Szerk.: "átírtam ezt a részt <b> tagekkel oldottam meg a lapozhatóságot"
Na de remélem akkor azt úgy, hogy <li> tagbe raktad. Tulajdonképpen nem csak az volt a gond, hogy <p> paragrafus van a <li>-elemek közé beékelve, hanem hogy bármi más HTML-elemet közbeékelsz ezek közé, máris nem valid úgy a kód.
Tehát a következő NEM jó:<ul>
<li>blabla1</li>
<div>blabla2 div-ben</div>
<li>blabla3</li>
</ul>így már JÓ:
<ul>
<li>blabla1</li>
<li><div>blabla2 div-ben</div></li>
<li>blabla3</li>
</ul>[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Sk8erPeter #351 üzenetére
Ez már nem fért bele a szerkesztési időbe, de még annyit akartam elmondani, hogy itt a validitásra nem amiatt érdemes figyelni, hogy a fejlesztő elmondhassa, hogy milyen ügyi volt, hogy valid kódot írt, hanem azért, mert a böngészők alapvetően toleránsak az invalid kóddal szemben is, megpróbálják a lehető legtöbb, átlagember számára is értelmezhető infót megjeleníteni a kódból - de invalid kód esetén fokozottan nő a veszélye annak, hogy a különböző böngészők másképp oldják meg ezt a helyzetet, így megjelenítésben és/vagy viselkedésben, majd későbbi módosíthatóságban, DOM-bejárásban előjöhetnek problémák.
Pl. egy invalid HTML-kóddal összerakott lista esetén vagy lehetetlen bejárni a listát a megjelenítés után, vagy kiszámíthatatlan lesz, hogy azt az eredményt kapod-e, amit vártál.Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Brown ügynök #361 üzenetére
A klasszikus JavaScript-szintaktikáról beszél, pl.:
<div class="foo" id="bar">Blabla</div>
document.getElementById('bar').className ====>> ez egyenlő a "foo"-val.
Ugyanez jQuery-szintaktikával:
$('#bar').attr('class')
VAGY
$('#bar').attr("class")
tehát tökéletesen mindegy, hogy aposztrófot vagy macskakörmöt használsz, mindkettőre pontosan ugyanúgy működik!
Vagyis itt félreértetted:"WARNING: When setting the 'class' attribute, you must always use quotes!"
Ehhez hozzátartozik a korábbi példa is, amit ír:
$('#greatphoto').attr({
alt: 'Beijing Brush Seller',
title: 'photo by Kelly Clark'
});
When setting multiple attributes, the quotes around attribute names are optional.WARNING: When setting the 'class' attribute, you must always use quotes!
Tehát magyarul a korábbi példával élve így kéne beállítani egy title és class attribútumot:
$('#bar').attr({
title: 'this is the title of the >>bar<< element',
'class': 'foo and_one_more_class'
});Mondjuk aposztróf nélkül is működik, kipróbáltam.
(#357) jeges : mivel ez a jQuery topic, ne keverjük a hagyományos JavaScript-szintaktikát a jQuery-ben elérhetőekkel, mert az csak kavarodást okoz.
jQuery-ben teljesen jól működik a $('#bar').attr('class'), mint ahogy fentebb is írtam.Sk8erPeter
-
Sk8erPeter
nagyúr
válasz TOTAL LOKI #355 üzenetére
Itt készítettem neked egy leegyszerűsített példát:
[link]Kérdés, ennek mintájára tudsz-e készíteni hasonlót.
Sk8erPeter
-
Sk8erPeter
nagyúr
Nem teljesen jó: mi van, ha mondjuk hibásan fut le a query, tehát az .error() (majd 1.8-as jQuery-verziótól .fail()-t kell használni, az .error() deprecated lesz) függvénybe lépne bele (már ha az itt be lenne állítva)? Akkor úgy marad, és mindvégig a progress kurzort fogja mutatni, amíg nem frissítesz teljes oldalt, vagy csinálsz mást, ami ezt a kurzort megváltoztatja?
Ergo ezt a sort:
$("body").css("cursor", "auto");
szerintem inkább tedd a .complete() függvénybe (1.8-as jQuery-verziótól ez deprecated, akkor majd .always() lesz a neve), ami mindig lefut, attól függetlenül, hogy a query-d sikeresen lefutott, vagy pedig hibába ütközött.Tehát így lehetne átalakítani a függvényedet:
function loadMenuPoint(strLink, strTitle, strContentDiv, numMID) {
$("body").css("cursor", "progress");
window.history.pushState('', strTitle, strLink);
$.ajax({
url: "ajax.php?action=loadMenuPoint&mid="+numMID,
success: function(strHtml) {
$("#"+strContentDiv).html(strHtml);
},
complete: function (jqXHR, textStatus){
$("body").css("cursor", "auto");
}
});
}Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Sk8erPeter #363 üzenetére
@TOTAL LOKI:
Folytassuk itt, mert ez nagyon nem privi téma, plusz több szem többet lát, meg hátha mást is érdekel.
Tehát azt mondtad, szeretnéd, ha olyan megoldás is lenne benne, mint a linkelt példaoldalon, hogy van egy ikon, ami ott marad az alján, ennek megfelelően kicsit továbbalakítgattam az általam korábban összedobált kódot, itt az új változat: [link].
Amikor kattintgatsz a dobozokra, akkor az ikonok is változnak, és letolódnak a tartalommal együtt.Itt sokféle megoldással lehet egyébként még játszani, pl. background-image-ként is meg lehet adni ezeket a képeket, de ez is egy lehetséges megoldás, hogy konkrétan képet raksz be.
(#369) Rolly: szívesen!
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Sk8erPeter #370 üzenetére
Most magam szórakoztatására megcsináltam "animáltan", eltűnik az ikon, aztán megjelenik, amelyiknél épp érdekes: [link]. Gondoltam akkor már belinkelem ezt is.
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Speeedfire #375 üzenetére
Ha már egyszer van egy ilyened:
var spt = $('span.mailme');
akkor itt a dollárjel és zárójel felesleges:
$(spt).after(.......)
ehelyett ez is elég:
spt.after(.......)(#377) Speeedfire :
"Ha van egy fix magasságú div, akkor meglehet oldani, hogy akámilyen hosszú szöveg is van benne mindig az aljára kerüljön?"
Mihez képest az "aljára"?
Ha olyan hosszú, hogy úgyis kilógna belőle, akkor minek kellene az aljára kerülnie?
Sajnos megint nem érthető a kérdés.Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Speeedfire #379 üzenetére
Lehet, hogy még mindig nem ez az, amit szeretnél - de feltettem ide egy példát: [link].
Ha ez se jó, akkor illusztráld, írd körül, idézz szellemet, vagy valami.Szerk.: ja, klattyolj a gombra. Gondolom JS-sel szeretnél valami elemet feltölteni tartalommal, ezért kérdezted itt.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Speeedfire #384 üzenetére
Használd ezt, és ne szopasd magad saját menüanimálós pluginek készítésével:
SuperfishMár nem merek belekezdeni sem a jsbin-en kód mutatásának, mert aztán tuti kiderül, hogy valami totál másra gondoltál...
Egyébként jó lenne, ha a kezdeti próbálkozásaidat Te is jsbin-re vagy jsfiddle-re tennéd fel, így kicsit gyorsabban menne a közös problémamegoldás.
Azt már csak tovább kellene alakítgatni, utána meg csak egy linket bedobni a megoldással, és annyi. Vagy legalább abból gyorstippet adni.Az ezelőtti kérdésednél sem szerencsétlenkedtünk volna feleslegesen, ha mondjuk bedobsz egy képet róla, hogy mit szeretnél. Meg eleve megtévesztett, hogy ide írtad, azt hittem, JS is lényeg belőle, vagy nem vágom.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Speeedfire #386 üzenetére
A Superfish-nél megoldották azt is, hogy egy kis késleltetés után tűnjenek el az almenük, amire korábban rámentél, így nincs az az idegesítő jelenség, hogy mondjuk meg akarsz nyitni egy menüpontot, föléviszed az egeret a főmenünek, megnyílik az almenü, annak még egy almenüjét végre sikerül megtalálnod, afölé is viszed az egeret, de véletlenül mellétolod az egeret egy pixellel, és máris eltűnik az al-almenü, és akkor kezdheted a navigálást az elejétől.
Amúgy tényleg fasza a Superfish, én Drupalnál használom, van modul is hozzá. Mondjuk Drupalnál még annyiból is egyszerűbb a dolog, hogy ott még olyan nagyon konfigolgatnom sem kell (a legtöbb dolog beállítható grafikus felületen is), egy sor jQuery-kódot nem kell írnom, mert az generálódik, szóval csak engedélyezem, beállítom, mit jelenítsen meg Superfish-menü formájában, beállítom a megfelelő blokkokat is, és kész van. Most ezt csak azért mondtam el pluszban, mert írtad már korábban, hogy Te is használsz Drupalt.
===
Szerk.: amúgy ha továbbra is a sajátot szeretnéd megoldani, akkor rakd már fel jsbin-re vagy jsfiddle-re a mintakódot plíz, hogy ne nekünk kelljen tökölni vele.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Speeedfire #394 üzenetére
Az if-nél a $(this)-ed szerintem nem jó.
Próbáld valahogy így (persze nem próbáltam ki, meg nem tudom, mi a célod, csak gyorsan leírtam, de talán jó):
$(document).ready(function () {
var circleBgColors = ['rgb(0,128,0)', '#e5e5e5', '#008000'],
$circleObj = $('.kor');
if ($circleObj.css('background-color') == circleBgColors[0]) {
$circleObj.css('background-color', circleBgColors[1]);
} else {
$circleObj.click(function () {
$(this).css('background-color', circleBgColors[2]);
});
}
});[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Speeedfire #397 üzenetére
Mondjuk sztem lehetnél konzekvens, hogy akkor már következetesen vagy hexában, vagy rgb-ben adod meg...
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Speeedfire #399 üzenetére
Akkor add meg RGB-ben. Na, de nem szólok bele, ez igazából annyira nem is problémás.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Speeedfire #401 üzenetére
"Azt szeretném visszakapni itt, hogy #kamera-1 //az id[1] értéke egy szám minden esetben
Viszont, ha használom a selectorban a kamera változót akkor a html-ben már nem jó.
<div id="#kamera-" 1""="">"
Huhh, néha nem egyszerű kiigazodni a kérdéseiden, egy miniatűr, félig repedt információmorzsából kiindulva.
Mi az, hogy "ha használom a selectorban a kamera változót, akkor a html-ben már nem jó"?
Hogyan használod? Nem írtál erről semmi egyebet...Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Speeedfire #409 üzenetére
Azok alapján, amit eddig írtál, gondolom egy fájlban van a PHP-kód, a statikus HTML-tartalom, valamint a JS- és CSS-kód is.
Gondolom valahol tényleg szintaktikai vagy ehhez hasonló hiba van, de megint nem látunk sajnos teljes kódot, így nem tudjuk azt mondani, hogy figyeljééé máá, a 62. sorban van egy felesleges plusz karakter, ami borítja az egészet...
Először szedd szét, amit tudsz, pl. a CSS-tartalmat meg a JS-kódokat pakold külön fájlba, azt amúgy is úgy illik. Minimálisra redukáld pl. a szerveroldali kóddal generált JS-kódot, ha elkerülhetetlen, hogy legyen pár sor, akkor is. Jól megtervezett esetben amúgy is elég, ha JavaScript-kódból mondjuk csak változóknak történő értékadást generálsz le, a többi mehet külön fájlba "statikusan".Szerk.: amúgy meg ja, ahogy Karma mondja, a fejlesztőeszközök sokszor egyből megmondják a tutit, vagy legalább rávezetnek a megoldásra, hogy mit sikerült elrontani.
Szerk. 2.: egyébként a JS-kód melyik részére mondja azt, hogy van unexpected token illegal? Ilyenekre figyeltél, mint az UTF-8 kódolás BOM nélkül és egyebek? (bár gondolom máshol kell keresni a hibát, de azért megkérdezem)
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Speeedfire #414 üzenetére
Írd a kérdéseket nyugodtan, csak egészítsd ki a megfelelő infókkal is. A kérdéseid nélkül halott lenne a topic. Legalábbis amúgy ahogy elnézem, nem sokan járnak errefelé kérdésekkel.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
-
Sk8erPeter
nagyúr
-
Sk8erPeter
nagyúr
válasz TonTomika #426 üzenetére
Ha ilyesmi kell, arra akkor a Waypoints oldaláról a Sticky Elements mutat példát.
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Speeedfire #430 üzenetére
Minek rakod egy tömbbe (video nevű) a HTML-kódot? Ahhoz elég lenne egy string is.
Amúgy ha olyan elemekre szeretnél eseményt kötni, amik majd csak a jövőben kerülnek a DOM-ba, akkor ott az .on() függvény (korábban .live(), ill. .delegate()).Sk8erPeter
-
Sk8erPeter
nagyúr
Ja, hát nyilván nem a legszebb megoldás, valóban ronthatja a teljesítményt, de ki a franc veszi azt észre?
Kliensoldali kód optimalizálása persze nem egy kinevetendő dolog, de a legtöbbször, pl. tipikusan weblapok esetében az ilyen jellegű "spórolás" tulajdonképpen a gyakorlatban teljesen felesleges.Sk8erPeter
-
Sk8erPeter
nagyúr
Bocs, totál félreértettem az imént, amit írtál, azt hittem, a második felére írtad a teljesítménybeli dolgot (az .on() függvény használatára, feltételezem, az sem vezet az optimális kódhoz, hogy jövőben létrejövő elemre kötsz eseményt, de mivel erről még tesztet, mérést nem láttam, ez egyelőre csak "spekuláció"). Így már világos!
Viszont most megnéztem, amit írtál, és a validálási parát stringgel nem igazán értem, mert így, stringre átírva is JSLint-valid a kód, igaz, itt "ömlesztve" van a kód, nincs sorokra szétbontva, talán átláthatóság szempontjából kevésbé jó, de mondjuk jelen esetben ez kevésbé számít.
Szerk.: most látom, az eredeti kódban is lemaradt a záró </div> tag, így igazából ez lenne a valid változat.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Lehet ezt még kombinálni más módon is validra:
1.) [link]
2.) [link]
Utóbbi talán még áttekinthető is. Továbbra sincs szükség tehát a tömbösítésre.Ez a teszt igazából elég megtévesztő, mert megint csak akárhányszor futtatom, más jön ki, pl. a .delegate() on document sokszor gyorsabbra jött ki, mint az .on() on document, persze nem olyan meglepő, mert gondolom függ attól is, hogy épp nem terhelte-e valami folyamat a procit, vagy tököm tudja, de én igazából nem tudtam levonni a konklúziót, hogy most az .on() hű de sokkal gyorsabb. Mindenesetre köszi, érdekességnek jó lesz később is lefuttatni más böngészőben!
Sk8erPeter
-
Sk8erPeter
nagyúr
Jaja, "szemantikailag" nem túl szép, hogy keverve van a JS-kód a HTML-kóddal.
Ez az EJS igen jó, nekem a kliensoldali template-ezés terén viszont bőven vannak hiányosságaim, eddig élesben még nem használtam, pedig eléggé van létjogosultsága.
Egyébként konkrétan itt az EJS-nél ezek a template-ezéshez szükséges <%= nyitó- és %> zárótagek bizonyos esetekben nem okozhatnak problémát amiatt, hogy az ASP/ASP.NET short tagek is pont ugyanígy néznek ki?
====
(#439) Frigo :
igen, teljesen igazad van, most meg is néztem konkrétan 1.7.1-nél:
jQuery.fn.extend({
on: function( types, selector, data, fn, /*INTERNAL*/ one ) {
..........
},
..........
live: function( types, data, fn ) {
jQuery( this.context ).on( types, this.selector, data, fn );
return this;
},
.......
delegate: function( selector, types, data, fn ) {
return this.on( types, selector, data, fn );
},
..........Viszont mivel ez valóban így van, ez kérdésessé teszi számomra a teszt értelmét.
Akkor legfeljebb a plusz függvényhívás ideje adódik hozzá elméletben a közvetlenül történő .on() híváshoz...Sk8erPeter
-
Sk8erPeter
nagyúr
Zsír.
Gondolom a "type" megadásával.Ja tényleg, van még egy ilyen is (.template()). Ezzel kapcsolatban tapasztalat? Hogy mondjuk miért nem érdemes használni vagy éppen miért igen? (pl. a másikkal szemben, ami nyilván robusztusabbnak tűnik)
(#442) martonx : és ha valaki nem a Razor syntax-t használja? Akkor gondolom avvvvan, amit írtam.
[ Szerkesztve ]
Sk8erPeter
Új hozzászólás Aktív témák
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Autós kamerák
- Milyen program, ami...?
- Milyen okostelefont vegyek?
- Formula-1
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Samsung Galaxy S23 Ultra - non plus ultra
- Az iPadOS-re írt appokra is díjat vet ki az Apple
- Fejhallgató erősítő és DAC topik
- DIGI internet
- További aktív témák...
- Lenovo Legion 7, 16,0"WQXGA, Ryzen 9 6900HX, 32 GB DDR5, RX6850M XT 12 GB, 1TB SSD, 1,5+ év garancia
- Corsair RM850e 850W Gold Moduláris Tápegység
- Samsung Odyssey Neo G9 Super Ultrawide Gamer Monitor!49"/Mini LED/5120x1440/240hz/1ms/+Ajándék
- Apple Macbook Pro 16" 2019 i7-9th 6Magos 32/512 -75% Touch Bar HUN Radeon Pro 5300M 4GB 3K Retina
- Apple Mac mini M2 2023 8GB 256GB + Xiaomi Mi Desktop 27"-os FullHD monitor egyben
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Promenade Publishing House Kft.
Város: Budapest