jQuery topic - Szoftverfejlesztés fórum

üzenetek

hozzászólások


martonx
(veterán)

Ugyan ennek már marhára nincs köze a jqueryhez, de a web fejlesztő eszközökkel lehet debugolni a futó javascript kódokat.
Aminek során meg tudod nézni ahogy soronként végrehajtódik a kód, kiértékelődnek a változók, mindent.
Ezt kellene megtenned, megtanulnod, hogy tovább tudj lépni.

A javascript fejlesztés nem áll másból, mint szopáshalmokból, jó magasan egymásra púpozva. A webfejlesztő eszközök ezen a kínon enyhítenek valamelyest. A JQuery annyiban könnyíti meg a javascript fejlesztést, hogy az előbb használt képem esetében oszd el az egymásra púpozott szopáshalmokat hárommal :))


jeges
(senior tag)

szia,
én a következőket próbálnám ki:
this helyett $(this)
:eq() helyett .eq() -- beágyazott (úgy értem, a :xxx stílusú) selectorok nem szokták szeretni az ilyen hivatkozásokat, .eq() igen.
ha még mindig nem megy, .each() eljárással próbálkozz. nem feltétlen szükséges, de számomra legalábbis átláthatóbbá válik az aktuális "környezet" (azaz éppen mit jelent a this/$(this) ). aztán ha működik, lehet optimalizálni.

valszeg elég lenne valami ilyesmi:

$(".almenu").each(function(){
$(this).bind("click",function(){
$(".leftcontent", ".leftmodule").hide();
$(".leftcontent", ".leftmodule").eq( $(this).index() ).show();
});
});

ehhez persze el kell intézni, hogy alapértelmezésben minden leftcontent display:none legyen. én csinálnék egy visible class-t, ami display:block-ot állít, és azt adnám a leftcontent-hez. a fenti így nagyjából úgy nézne ki, hogy

$(".almenu").each(function(){
$(this).bind("click",function(){
$(".leftcontent", ".leftmodule").removeClass("visible");
$(".leftcontent", ".leftmodule").eq( $(this).index() ).addClass("visible");
// esetleg: $(".visible").show();
});
});

nem túl optimális a megoldás, de 3-4 gomb esetén nincs érzékelhető különbség.
elnézést, elírás lehet benne még, mer' nem teszteltem...

megjegyzés: mindig érdemes minél pontosabb class selectorokat használni, mer' sokat tud lendíteni az oldal performanciáján (lásd $(".leftcontent", ".leftmodule") ). ahol lehet, ott pedig inkább id, az a leggyorsabb.

[ Szerkesztve ]


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! :Y :D 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ó". :N (Olyan szó sincs, ha már magyarra fordítjuk, fordítsuk jól: "alkalmazás".)

[ Szerkesztve ]


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>


jeges
(senior tag)

de miért .next() ? ha jól értem, az almenü klikkje a .leftcontent cseréjét kéne maga után vonja, azaz a .leftcontent tartalmát kéne cserélgetni. a $(this).next() a Te kódodban az .almenu-re vonatkozik.
vagy én értek félre valamit.


Sk8erPeter
(nagyúr)

Már miért vonatkozna az .almenu-re? :U
Pontosan azt csinálja, amit kell.
Az .almenu-höz képest next elem... az épp a .leftcontent.
Szóval igen, eléggé félreértetted.
Te kódoddal ellentétben ez tesztelt, működő és szerintem elég rövid kód. :)

[ Szerkesztve ]


martonx
(veterán)

Ki olt itt le kit? Én igenis segítettem neki. Ha megtanul debugolni, hirtelen egy klasszissal jobb lesz. Olyan ez mintha egy fuldokló kérne segítséget, aki fél kézzel egy csónakba kapaszkodik, de valamiért fingja sincs, hogy mire való a csónak. Én csak elmondtam neki, hogy az pont arra való, amire neki szüksége van. Arról már nem tehetek, hogy kiderült, neki a hobbija a fuldoklás, hát lelke rajta.
Ráadásul egy programozás fórumnak sosem az a célja, hogy más helyett megoldja a problémákat, ez szinte lehetetlen is lenne.
A célja az, hogy segítsünk megoldani a problémákat. És ha valakinek a problémáját web fejlesztő eszközök segítségével lehet megoldani (még ha ő nem is biztos, hogy tudja, hogy neki erre van szüksége, mert ezeket az eszközöket hírből sem ismerte eddig), akkor igenis komoly segítséget nyújtottam azzal, hogy ráirányítottam figyelmét ezen eszközök létezésére.
A hangnememet jogosan lehet kritizálni, sajnos a türelem nem az erősségem :(


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. :R

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).


martonx
(veterán)

Az első hozzászólásomban felsoroltam a web developer eszközöket. Így utólag visszaolvasva kihagytam az IE fejlesztői eszközét, rendben akkor legyünk percízek F12 indítja :D az Operáéról sem szóltam, de hát ki használ Operát? Nem linkeltem be őket, való igaz, nem magyaráztam el a használatukat, való igaz. De ezek azért nem ördöglakatok, elég gyorsan rájuk lehet érezni, tengernyi tutorial, dokumentáció mutatja be őket, a velük való javascript debugolást.
Én még a mai napig sem érzem magam jó programozónak, bár fejlődök-fejlődgetek.
És pont magamból kiindulva, a web developer eszközökkel azon segítettem emberünknek, hogy gyorsabban fejlődjön.
De kezd parttalan lenni ez a vita, valószínűleg már rég megoldotta a segítségem alapján :)) emberünk a problémáját, mert azóta nem jelentkezett.
Szerintem kimondottan visszafogottan fogalmaztam, visszaolvasva magamat, továbbra sem érzem leoltó hangnemnek. Maximum az alertes beköpésénél egy fokkal ingerültebben jeleztem emberünknek, hogy többre menne normális web fejlesztő eszközökkel, mert 2011-et írunk :DD


Sk8erPeter
(nagyúr)

"az Operáéról sem szóltam, de hát ki használ Operát?"
Pl. én... :U és azt hiszem, még jópáran... Ez milyen hozzáállás már? :W
Fejlesztőként főleg szégyen így hozzáállni...
Statisztika w3schools szerint: [link]
Nyilván az a 2,6% teljesen elhanyagolható... :W

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 ]


zserrbo
(aktív tag)

Látom igazi vita robbant ki a kérdésem kapcsán :) Amúgy van a gépemen IE9, FF, Opera és Chrome is firebuggal és az Opera beépített Dragonfly webfejlesztő eszközével. Szóval nem ismeretlen előttem a fogalom. Mindössze annyi van, hogy nem tanultam meg még rendesen kihasználni a bennük rejlő lehetőségeket. Pl. a DOM fület eddig nem nézegettem. Sima JS-ben nem programoztam kb. semmit, rögtön jquery-vel kezdtem. Olvastam a neten ki mit ajánlj és többek szerint nyugodtan kezdhet vki rögtön egy keretrendszerrel is. Pár hónapja be is vásároltam a jquery receptek könyvből, mivel más jquery-s könyvről nem tudok, ami magyarul megjelent volna. Noha már ebben is van leg.egy depreceted rész (sajnos mire lefordítanak egy könyvet magyarra telik az idő) Tovább most nem részletezem a könyvet.
Szóval oké, hogy tudatosítani akartad bennem mennyire jók ezek az eszközök, de a problémámat nem oldotta meg. Jelenleg egy honlapot kell készítenem beadandónak és szeretnék vmi normálisat készíteni és nem csak összehányni. Az én kódom nem ment és most, hogy több variációt kaptam az remélhetőleg hasznomra válik. Mivel sürget az idő és nem csak egy zh-m van így egyet berakok ami megy a többit megnézem később.
A web developer tooloknak megpróbálok vmikor utánanézni jobban, remélem találok jó leírásokat hozzá magyarul is, mert sajnos az angol még nem megy a legjobban. Majd pótolom ezt a hiányosságomat is.

Még1x kösz a segítséget!


martonx
(veterán)

Szia!

Ne a DOM fület nézegesd! Neked javascript debugolásra van szükséged, a DOM nézegetés is hasznos tud lenni, de most debugolás kell.

Tessék, erre van szükséged: [link]
(Ha már megkaptam, hogy semmi konkrétumot nem írok, itt egy konkrét link)


ubid
(őstag)

Helló!
Újra segítségre lenne szükségem.

az oldalon szeretnék 2 scriptet is futtatni, de valamiért vagy cska az egyik megy...vagy egyik se... olyan hogy mind a kettő olyan nincs...

így néz ki :

ez az első... egy scrollbar

<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">
$(document).ready(function(){
$('#scrollbar1').tinyscrollbar();
});
</script>

ez pedig a második :

<script type="text/javascript" src="js/jquery.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(){
$('#example2').lofJSidernews({
interval: 4000,
easing: 'easeInOutQuad',
duration: 1200,
auto: true
});
});

</script>

ha ezt így berakom egymás alá akkor ahogy ide bemásoltam akkor az első, tehát a scrollbar megy....

ha megfordítom :
akkor csak az első megy.

hogyan lehet azt megcsinálni , hogy mind a kettő fusson egyszerre ,? ? ?

Köszi a segítséget előre is!


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 ]


ubid
(őstag)

Rendben van!

Kipróbáltam, így tényleg működik!

Köszönöm a segítséget!

[ Szerkesztve ]


tildy
(nagyúr)
Blog

huha de beindult a topic, na at is olvasom:D

Amit tudok javasolni, kezdjetek el pluginokat irni, sokszor hasznos.

$.fn.clickPopup = function(optionclass){
$(this).append("<div class='"+optionclass+"'></div>");
$("."+optionclass+"").delay(1100).fadeOut(800,function() { $(this).remove(); });
};

Ez egy pelda, amelz hozzaad egy classt az oldalhoz, x ido mulva pedig kiszedi azt.
Mikor hasznos: ha peldaul sajat magad altal krealt felugro boxot akarsz, ami elhalvanyodik es eltunik. ( nekem saved-et ir ki. )

[ Szerkesztve ]


ubid
(őstag)

Helló!

Egy kis segítségre lenne szükségem.

Egy weboldalra akarok berakni egy zenelejátszót.

http://www.jplayer.org/download/

Ezt választottam.
Viszont ugye ebbe a saját direkt link van beszúrva, nem így mappázva mint a képek mondjuk.

tehát pl : www.jplayer.com/audio/ ezaneve.mp3

és így fut nagyon vagányan.

ha javítok rajta és egy sajátot akarok berakni. abból a mappából ahonnan az oldal fut, mondjuk : rock.mp3 akkor már csak a chrome böngésző veszi az adást. ez le is játsza.
viszont se a mozzila 4 se az IE 9 nem viszi!

Valakinek valami ötlete hogy hogy lehetne rábírni a böngészőket hogy futtassák ?

köszi!


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... :W
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?


ubid
(őstag)

Veled mindig össze kell akadnom ?

ODA VAN LINKELVE MINDEN CSAK NYISD KI A SZEMED!

Senki nem mondta hogy rossz a kód... annyit mondtam hogy saját linkkel nem működik !

Szedd le, nyisd meg, próbáld ki aztán meglátod.

De neked válaszolnod se kell. Hanyagold!


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. :DD
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. :P

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 ]

üzenetek