- Vodafone otthoni szolgáltatások (TV, internet, telefon)
- Call center-forradalom: AI alakítja át az ideges telefonálók hangját
- Milyen routert?
- Bittorrent topik
- Microsoft Edge (a Windows Internet Explorer utódja)
- Mesterséges intelligencia topik
- Folyamatosan hazudott a bitcoin állítólagos feltalálója
- Vírusirtó topic
- Windows 11
- ASUS routerek
Új hozzászólás Aktív témák
-
Karma
félisten
válasz trisztan94 #1073 üzenetére
Nehogy elágazz, ha már egyszer a selectorban összevontad az ID-ket (instant spagetti)... Tördeld inkább szét több .click() hívásra, és használd ki az eventData paraméterét a clicknek: példa.
[ Szerkesztve ]
“All nothings are not equal.”
-
Karma
félisten
válasz trisztan94 #1107 üzenetére
Előbb kéne definiálni a függvényt, minthogy meghívod
Illetve ez nem kóser: $('#Username').value
A .val() függvényhívással valószínűleg több szerencséd lenne.[ Szerkesztve ]
“All nothings are not equal.”
-
Sk8erPeter
nagyúr
válasz trisztan94 #1109 üzenetére
Persze, hogy nem megy, mivel egy üres stringet hasonlítasz össze a 0-val, az pedig nem ugyanaz.
Szóval pl.:
if($('#Username').val() === "")[ Szerkesztve ]
Sk8erPeter
-
Karma
félisten
válasz trisztan94 #1112 üzenetére
Mi a szent szart keres az az onsubmit ott?
Ta daaa, megjavítottam. A submit() függvény nem véletlenül van a jQuery-ben, a return false-olás csak azzal működik.
[ Szerkesztve ]
“All nothings are not equal.”
-
Male
nagyúr
válasz trisztan94 #1116 üzenetére
Kevéssé valószínű, hogy itt bárkinek behozza, mivel egy belső hálós IP-t írtál most ide
-
Sk8erPeter
nagyúr
válasz trisztan94 #1116 üzenetére
Ez a saját szerós tetszett...
Amit Karma írt, az onLoad-nál fut le, nézd meg bal oldalt a panelt.
Tedd be $(document).ready()-be az egészet (Karma, épp a kezdők miatt kéne inkább a "no wrap (head)" beállítást használni, hogy elkerüljük a visszakérdéseket ).
Update-elve Karma kódját, így értem: http://jsfiddle.net/Sk8erPeter/Kpugd/1/
Meg nyilván include-old a jQuery-t.....
Egyébként validációnál hülyeség az első hibánál visszatérni: gyűjts össze a formban az összes hibát, és mindre hívd fel a figyelmet. Szerintem.(#1111) Karma :
ja, valóban, ebben igazad van, hogy a 0-val való vizsgálódásra is true, erről megfeledkeztem, de alapból hülyeség így vizsgálni (keverni a típusokat), hogy 0-val egyenlő-e, amikor arra kíváncsi, hogy üres stringgel egyenlő-e.Sk8erPeter
-
Sk8erPeter
nagyúr
válasz trisztan94 #1123 üzenetére
Hát én nem egy könyvből olvasok, inkább többet forgatok (e-bookokat), tutorialokat nézek, stackoverflow-s kérdéseket és válaszokat böngészek, konkrét felmerülő témákkal kapcsolatban keresgélek, de legfőképp a hivatalos dokumentációt nézem.
(#1122) Karma : hát ez tényleg eléggé szopóág... most már örülök is neki, hogy nem kerültem fejlesztőként kapcsolatba a Silverlighttal. De akkor ez hova vezet, a Silverlight halálához? Mert ha igen, akkor elég kérészéletű volt.
Sk8erPeter
-
martonx
veterán
válasz trisztan94 #1123 üzenetére
jquery saját dokumentációjából, webes tutorialokból. Bevallom konkrét jquery könyvet sosem olvastam.
Más programnyelvek (C# és leszármazottai ASP.NET, Silverlight) esetében futottam már át jópár ebook-ot, de inkább a saját dokumentációkból, webes példákból, oktató videókból tanultam. Rémlik mintha egyszer nekifogtam volna valami baromi hosszú PHP-s könyvnek is, de ott is inkább a webről szedtem az információkat.Én kérek elnézést!
-
Sk8erPeter
nagyúr
válasz trisztan94 #1133 üzenetére
"van két gomb: Termékek és felhasználók, nos ezeket is ajaxolnám a mostani ajax helyére az #ajax divbe.
[...]
Szóval lehet ilyet jquery-vel? Én anno sima mezei JS-el csináltam ajaxban ajaxban ajaxot.. "Azt a k×rva, te aztán tudsz fogalmazni...
"nincs document.readybe"
Akkor legyen.Amúgy imádom az ilyen hibajelzéseket, csak a lényeget nem írod le, hogy mi a hibajelenség, mi van a konzolon (F12 vagy Ctrl+Shift+I, Console fül), mi történik, vagy épp mi NEM történik.
Még próbáld így, pl.:
$('#adminfelhasznalok').on('click', function() {
$('#ajax').load('admin/felhasznalok/felhasznalok.php');
return false;
});Ha ez sem jó, akkor kicsit több infót is ossz meg (meg fogalmazz magyarul ).
[ Szerkesztve ]
Sk8erPeter
-
Male
nagyúr
válasz trisztan94 #1136 üzenetére
Elég zűrzavar amit írsz, de ugye nem az előtt rendeled hozzá a gombokhoz a click-et, hogy kitennéd őket az oldalra?
-
Male
nagyúr
válasz trisztan94 #1138 üzenetére
A load-nak van egy complete része (callback), ott rendeld hozzá a gombokhoz amit kell.
-
Soak
veterán
válasz trisztan94 #1176 üzenetére
Azokat az adatokat amiket jelenleg az url-ben tárolsz sokkal egyszerűbb lenne adatbázisban. Egyszerűen egy id-t tárolsz az url-ben amit $_GET-el kinyersz, majd azt előhozod az adatbázisból.
A jelenglegi formában iszonyú melós már egy árat is átírni még akkor is ha hozzáférsz a forráskódhoz. Amúgy meg egy nagyon egyszerű admin pagen nyilván tudsz mindent tartani.
-
Soak
veterán
válasz trisztan94 #1178 üzenetére
És mondjuk az AJAX-od egy php-re mutat ahova elpostolod az id-t az meg vissza adja amit akarsz.
Nincs mit !
-
martonx
veterán
válasz trisztan94 #1180 üzenetére
A TXT file-os megoldás működhet, ha elég kevés adatot akarsz benne tárolni.
Meg ha nem kell benne sokat keresni.Én kérek elnézést!
-
Sk8erPeter
nagyúr
válasz trisztan94 #1182 üzenetére
Hagyd a TXT-fájlos megoldásokat, ne gyakorolj olyat, amit hosszú távon úgysem fogsz tudni használni. Úgyis az az általános gyakorlat, hogy kicsinek indul, aztán bővíteni kell, és akkor alakíthatod át teljesen a szarul megírt rendszert. Inkább legyen kicsit komplexebb, de könnyen bővíthető.
Sk8erPeter
-
martonx
veterán
válasz trisztan94 #1185 üzenetére
minél kisebb, minél univerzálisabb részekből építed fel a kódodat, az a későbbiekben annál könyebben, annál rugalmasabban módosítható, bővíthető lesz.
Én kérek elnézést!
-
Speeedfire
nagyúr
válasz trisztan94 #1301 üzenetére
A setInterval 1000-res paramétere miatt várakozik.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Speeedfire
nagyúr
válasz trisztan94 #1304 üzenetére
Leírom megint. A setInterval miatt várakozik 1-et. Állítsd át az 1000-ret 0-ra és akkor nem fog várni.
$(document).ready(function() {
var timer=3;
window.setInterval(function() {
$('#timer').html(timer);
timer--;
}, 0);
});Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Sk8erPeter
nagyúr
válasz trisztan94 #1304 üzenetére
Mi az a timer+1?
Ez jó, csökkentetted eggyel a kezdeti értéket a 3-ról 2-re, de azért biztonság kedvéért hozzáadtál plusz egyet, hogy pontosan ugyanott tarts, ahol előtte. (facepalm)Amúgy nem értelek, martonx már elmondta a megoldást elég egyértelműen, hozzátéve persze, hogy ez így nem túl szép megoldás, de van egy
<p id="timer">3</p>
elemed, és a timer-t pedig 2-ről indítod, a korábbi kódoddal, azt' kész vagy.
De nem ártana betenni egy időzítés-leállítót, hogy azért 0-nál lejjebb ne számolgasson már...Sk8erPeter
-
Sk8erPeter
nagyúr
válasz trisztan94 #1394 üzenetére
A $.get AJAX-os oldallekérésekre használható, mindezt GET-metóduson keresztül, ahogy a nevében is benne van: http://en.wikipedia.org/wiki/HTTP#Request_methods
A szavaidból úgy vettem le, hogy nem AJAX-szal jelentkeztetsz be, hanem hagyományos módon, van egy oldalfrissülés.
Így elég sokat találsz ilyenből. Pl. ez, ez, ez, ez, stb.
Azt nem néztem meg, ezek közül melyik a legjobb, nem tanulmányoztam a kódjukat, próbálgasd őket.A stackoverflow-s elég összetettnek tűnik:
function getURLParameter(name) {
return decodeURI(
(RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1]
);
}"Szóval konkrétan jQuery-vel szeretném megnézni, hogy létezik-e a 'user' nevű GET változó, ha igen akkor történik az esemény. "
Ez nem biztos, hogy jó megoldás.
Ha én kézzel beírom ezt a paramétert, úgy, hogy már rég be vagyok jelentkezve, akkor is mindig mutogatni fogja nekem a slideDownnal megjelenített divet?[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz trisztan94 #1398 üzenetére
Az AJAX-os beléptetést csak azért vetettem fel, mert van, ahol ilyet alkalmaznak.
Szerintem nem érdemes vele pöcsölni, még ha hűdecsicsa is, mert a legtöbb esetben a bejelentkezés után tök más lesz a felület, több link lesz elérhető, stb., most ezeket mind kliensoldalon frissítgetni amiatt, hogy bejelentkeztél, szerintem túl sok felesleges meló, nem történik semmi, ha speciel belépésnél lát egy oldalfrissülést a felhasználó. Persze ha ez a megrendelő kifejezett kérése, meg full AJAX-os felületet akar, akkor nem úszod meg a szarakodást.
Egyszerű példakód meg nincs rá, mert ki tudja, Te milyen elemeket szeretnél frissíteni bejelentkeztetés után. Önmagában a bejelentkezés AJAX-szal pont úgy néz ki, mint bármilyen más, AJAX-szal elküldött form feldolgozása, csak belépteted a júzert, azt' annyi.Most így hirtelen fingom sincs, hogy oldanám meg szépen, mert ahhoz gondolkodni kéne, és ahhoz meg energiát kéne erre szánni, de most nem vagyok olyan állapotban.
(#1399) Frigo :
[link]
"2. How do I install this?
Um... are you stupid or something? Just attackclone the grit repo pushmerge, then rubygem the lymphnode js shawarma module – and presto!"[ Szerkesztve ]
Sk8erPeter
-
trisztan94
őstag
válasz trisztan94 #1745 üzenetére
Update:
Próbáltam Callback functionnal is, semm változás
$('#PageTitle').html("PHP Tutorialok. <a class='GoBack'>Vissza</a>", function() {
$('.GoBack').on('click', function () {
$('.TutorialsSlideDown').slideUp(400);
$('.tutorial_listing').slideDown(400);
$('#PageTitle').html("@Page.Title");
});https://heureka-kreativ.hu
-
martonx
veterán
-
Sk8erPeter
nagyúr
válasz trisztan94 #1745 üzenetére
$('#PageTitle').html("PHP Tutorialok. <a class='GoBack'>Vissza</a>");
Azért ezeket nem illik JavaScripttel kiírni, gondolom ez egy cím. Rejtsd el addig CSS-sel, amíg nem szükséges a megjelenítése, vagy ilyesmi.
Ahogy martonx írta, készíts jsFiddle-példát az eddigi próbálkozásodról.Sk8erPeter
-
tick
aktív tag
-
Sk8erPeter
nagyúr
válasz trisztan94 #1751 üzenetére
Persze, hogy megoldható....
A kódod viszont így nem túl szép.
$('#PhpTutorials').click(openTutorials('#PhpTutorials', "PHP Tutorialok. <a class='GoBack'>Vissza</a>"));
event handlernek nem így adunk át paramétert.
Itt egy érintett topic, gyorsan kikotortam neked:
http://stackoverflow.com/questions/979337/how-can-i-pass-arguments-to-event-handlers-in-jqueryTehát így:
$('#PhpTutorials').click(function(){
openTutorials('#PhpTutorials', "PHP Tutorialok. <a class='GoBack'>Vissza</a>")
});VAGY ha a .bind()-ot akarod használni:
$('#PhpTutorials').click( openTutorials.bind(this, '#PhpTutorials', "PHP Tutorialok. <a class='GoBack'>Vissza</a>") );
Bár utóbbit én feleslegesen nyakatekertnek találom, ízlés kérdése.
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz trisztan94 #1753 üzenetére
Így néz ki az AJAX-hívás:
http://api.jquery.com/jQuery.ajax/
De ha valami konkrétabbat kérdezel, akkor még talán érteni is fogom a kérdésedet.másik:
Épp ezért mondtuk hogy rakjál már fel egy példát jsFiddle-re, hogy lássuk, mivel próbálkozol...
Egyébként gondolj bele azok helyzetébe, akik megpróbálnak neked segíteni: meglátják valaki másnak a kódját, el kell kezdeni tanulmányozni, hozzáképzelni a környezetet, mindez neki kerül időbe... kinek éri ez meg? Szóval a kérdezők saját érdeke is, hogy felrakjanak gyakorlati példát, hogy gyorsabban kapjanak (vagy kapjanak egyáltalán) segítséget.
Egyébként nem tudjuk, hogy mire kötöttél click event handlert, de adott esetben mindenesetre nem árthat, ha a végére beteszel egy return false;-t.[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz trisztan94 #1755 üzenetére
Nem volt túl nehéz működésre bírni jsFiddle-ön:
http://jsfiddle.net/Sk8erPeter/PShHD/
(ASP.NET-szalagos kép nem volt, csak ASP-s )
De ez még így is túlbonyolított megoldás, egyszerűbb lenne class-szal ellátni azokat az elemeket, amikre kötni szeretnéd a közös event handlert, és valami data- attribútummal megadni a kívánt title-t, vagy ilyesmi.Elég egyértelmű, mi a baj a kódoddal: valamilyen érthetetlen okból kétszer kötsz event handlert az elemeidre, ráadásul itt látszólag tök feleslegesen használod az .on()-t.
Tehát előtte nagyjából ilyesmit műveltél:
$('#valami').click(function(){
$('#valami').on('click', function(){
/// hát ez így egy szar!
}
});Most persze leegyszerűsítettem a kódot, amit előtte bemásoltál, hogy a lényeg, tehát a hiba látható legyen. Nem csoda tehát, hogy nem működött az elvártak szerint.
Az AJAX-os dolog meg nem egy bonyolult valami jQuery-ben, a példában látható képekre akár rakhatsz szintén data-attribútummal linket, hogy mit is kéne betölteni, vagy milyen URL-ről, aztán azt használnád fel az $.ajax() függvényedben... na, most egyelőre ennyit volt energiám leírni.
Sk8erPeter
-
Sk8erPeter
nagyúr
-
Sk8erPeter
nagyúr
válasz trisztan94 #1774 üzenetére
http://blog.jquery.com/2013/01/15/jquery-1-9-final-jquery-2-0-beta-migrate-final-released/
Nekem még nem volt kedvem és időm elolvasni, majd összegezd, ha te megtetted.[ Szerkesztve ]
Sk8erPeter
-
martonx
veterán
válasz trisztan94 #1774 üzenetére
1.9-hez képest, vagy 1.8-hoz képest.
1.9-hez képest csak annyi, hogy ez már (végre!) nem támogatja az Ie6-8-at.
Ettől kisebb, gyorsabb lesz a kód, bár számomra kiábrándító, hogy mindez csak 10%-ot jelent kisebbségben, és gyorsulásban is. De lehet velem van a baj, és feleslegesen vártam többet? Másrészt még csak béta, talán még ki tudnak pár %-ot facsarni a stabil verzióig. Másrészt minden % kissebedés, gyorsulás jól jön, szóval összességében örülünk.
1.8-hoz képest vannak igen drasztikus változások, nem teszteltem, de szerintem komolyan megölik a változások a régebbi pluginek jelentős részét.Én kérek elnézést!
-
Sk8erPeter
nagyúr
válasz trisztan94 #1786 üzenetére
Kukkantsd meg a jsFiddle kódját, amibe gépelsz, az valójában nem egy textarea. A mezei textarea-t nem lehet ilyen szinten testreszabni, ezért tehát olyan kell neked, ami ezt lecseréli, és legfeljebb majd submit előtt bepakolja a tartalmat a textarea-ba.
De tulajdonképpen a WYSIWYG-szerkesztők sem a textarea-t próbálják átszabni, hanem odaraknak egy iframe-et vagy egyebet, mindenesetre valamit, ami kicseréli a textarea-t.CodeMirror
ezt használja a jsfiddle.net ÉS a jsbin.com is. Ezek elég meggyőző referenciák.Sk8erPeter
-
Sk8erPeter
nagyúr
válasz trisztan94 #1788 üzenetére
Szívesen!
Amúgy kipróbáltam, ha letöltöd, akkor a demo/loadmode.html-t nézd meg mindenképp, abban ki lehet próbálni, hogy bepötyögöd, melyik nyelv syntax highlightját szeretnéd épp alkalmazni, aztán nyomsz egy "change mode"-ot, ez neked épp megfelelne az alapján, amit írtál, csak úgy, hogy akkor nálad lenne egy előre generált select-lista, aztán abból lehetne választani a megfelelőt, és akkor a júzer is meg tudná határozni, melyik kell épp neki.
Durva, mennyire egyszerű beüzemelni, meg van autoformat is (nézd meg a demo/formatting.html demót), nagyon fasza.Sk8erPeter
-
Sk8erPeter
nagyúr
válasz trisztan94 #1790 üzenetére
Szívesen! Engem is érdekelt már a dolog, úgyhogy jó, hogy kérdezted.
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz trisztan94 #1805 üzenetére
if($('#SpecifyCodeSnippetLanguage').css('display', 'none'))
Ez a feltétel eleve értelmetlen, mivel itt a display-nek none értéket adsz, és vizsgálgatod a visszatérési értékét.Így lenne értelmes:
if($('#SpecifyCodeSnippetLanguage').css('display') === 'none')
Ezenkívül inline-block jelenleg a szövegmező, tehát a sima inline-ra való vizsgálgatás nem lenne jó.
Még valami, simán rossz kódolási szokással kapcsolatos megjegyzés/javaslat:
$('#SpecifyCodeSnippetLanguage').css('display')
ezt egy függvényen belül nem érdemes többször hívogatni, mivel túl sok overheadet jelent.Így lehet elkerülni az overheadet:
var $customCodeSnippetLanguageElement = $('#SpecifyCodeSnippetLanguage');
var $customCodeSnippetLanguageElementVisibility = $customCodeSnippetLanguageElement.css('display');
if($customCodeSnippetLanguageElementVisibility === 'none'){
// ...
} else if($customCodeSnippetLanguageElementVisibility === 'inline-block'){
// ...
}így nem lesz túl sok felesleges függvényhívásod.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz trisztan94 #1807 üzenetére
Szívesen!
"firebug dobálta ki a felesleges overheadeket"
Ezt hogy érted, hogy "dobálta ki" az overheadeket?Sk8erPeter
-
Sk8erPeter
nagyúr
válasz trisztan94 #1809 üzenetére
Ja, hát ha valami plusz kieg., engem érdekelne, melyik az.
Az "unnecessary memory hog" kifejezés azért többre utal, mint a felesleges "overhead", mert az előbbi konkrétan azt jelenti, hogy valahol zabálja a kódod a memóriát, utóbbi meg "csak" azt, hogy a kódod túl sok felesleges lépést tartalmaz, jobban is lehetne spórolni az erőforrásokkal, és azzal, hogy ne legyen össze-vissza ugrálás a kódban; ilyen lehet például számtalan tök felesleges függvényhívás, amikor mondjuk bizonyos visszatérési értékeket el is tárolhatnál egy változóban, és azt használhatnád fel a kódodban máshol is. Ez persze nyilván összefügghet felesleges memóriakajálással is, tehát a két fogalom nem áll távol egymástól, de azért mégis picit mást jelent.
Sk8erPeter
-
martonx
veterán
válasz trisztan94 #1811 üzenetére
elég ha a firefox pluginjeidet megnézed
engem is érdekelne, egy ilyen js elemző firebug bővítmény.Én kérek elnézést!
-
Sk8erPeter
nagyúr
válasz trisztan94 #1811 üzenetére
"sajnos nem írja sehol sem a firebug, hogy milyen pluginok vannak felrakva"
Hát nyomass a Fájörfoxban egy Ctrl+Shift+A-t, ott tudsz kotorni a felrakott extensionjeid közt.Sk8erPeter
-
Sk8erPeter
nagyúr
-
martonx
veterán
válasz trisztan94 #1833 üzenetére
Egy próbát megérhet, illetve neki is jól jöhet némi visszajelzés.
Egyébként kellemes meglepetés, hogy egy hozzáértő tanár az oktatód!Én kérek elnézést!
-
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
-
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
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
-
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 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
-
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 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
- -70% HP EliteBook 850 G7:i7 10610U,32GB RAM,512GB SSD,15.6" FHD,vil.MAGYAR numeri.bill,WWAN 4G,Win11
- ASUS TUF Gaming GeForce RTX 4070 Ti 12GB
- Hama Ultraslim Fali konzol (TV)
- ÉRKEZETT Legújabb Bontatlan Új M2 IPAD PRO 2022 12,9 128GB - 256GB Wi-Fi Azonnal DEÁK TÉRNÉL Átvehe
- Női városi bringa (Sierra City)
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Alpha Laptopszerviz Kft.
Város: Pécs