- Übergyors Samsungnak próbál látszani egy hamisított NVMe SSD
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Kormányok / autós szimulátorok topicja
- Steam Deck
- 5.1, 7.1 és gamer fejhallgatók
- Vezetékes FEJhallgatók
- Amlogic S905, S912 processzoros készülékek
- SSD kibeszélő
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- TCL LCD és LED TV-k
Hirdetés
-
3 évre zárnák börtönbe a legnagyobb kriptotőzsde korábbi vezetőjét
it Az amerikai ügyészek keményebb, 3 éves börtönbüntetést akarnak elérni, miután Changpeng Zhao, a Binance korábbi vezérigazgatója bűnösnek vallotta magát a pénzmosásellenes törvények megszegésében.
-
Játékosbarát frissítést kapott az ASUS ROG Ally
ph A vállalat engedélyezte az AMD Fluid Motion Frames eljárását.
-
Baladins - Megjelenési dátumot kapott a PC-s kiadás
gp A jövő hónapban esedékes premiert az év folyamán a konzolos verziók követik majd.
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
válasz Speeedfire #800 üzenetére
Amúgy ötlet:
CKFinder
Ez a CKEditorhoz tartozó kiegészítő, AJAX-os fileböngésző, így az előzőleg feltöltött képeket könnyű vele beszúrni a szövegmezőbe, aztán testreszabni a CKEditorral.
Ha jogosultságok kellenek adott képekhez, akkor lehetne akár könyvtárszintű jogosultság is, ha a legegyszerűbbre gondolunk (pl. a felhasználókhoz saját könyvtárak tartoznak).Sk8erPeter
-
Speeedfire
nagyúr
válasz Sk8erPeter #801 üzenetére
Ez a ckfinder fizetős vagy nem?
Amúgy ez sem a legjobb, láttam már.Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Sk8erPeter
nagyúr
válasz Speeedfire #802 üzenetére
Hmm, elvileg fizetős. "ez sem a legjobb" - mi a baj vele?
Itt van egy ingyenes, nem tudom, ez milyen.
Amúgy nekem azért nem tűnt fel eddig, hogy a CKFindernek csak fizetős konstrukciója van, mert én mást használtam. Drupalhoz az IMCE-t, aminek mondjuk sajnos nem találtam általános oldalakhoz használható filemenedzserét (a Drupalos változatot 216968 felhasználó használja, nem szar ).Szerk.: vagy elFinder, eXtplorer, vagy ez
Szerk. 2: sőt, inkább csakis elFinder. Most látom, ennek van fasza CKEditor beépülője: [Configure CKEditor to use the elFinder file manager].
[ Szerkesztve ]
Sk8erPeter
-
Speeedfire
nagyúr
válasz Sk8erPeter #803 üzenetére
Az, hogy túl sok mindent enged meg a felhasználónak.
Az IMCE nekem is nagyon bejött Drupal alatt, de az meg nincs sajnos csak drupalra. Anno a fejlesztőnek is írtam, de nem tervezi sima rendszerre is megírni.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Sk8erPeter
nagyúr
válasz Speeedfire #804 üzenetére
"Az, hogy túl sok mindent enged meg a felhasználónak. "
Vazze, remélem viccelsz, akkor korlátozni kell a jogait...
Többek közt:CKFinder: [Defining Access Control]............
elFinder: [Simple file permissions control]
Sk8erPeter
-
Speeedfire
nagyúr
válasz Sk8erPeter #805 üzenetére
Arra értettem, hogy ő állítja elő a linket a képből.
Nagyon sokan még erre sem képesek. Nézd meg, hogy sokan itt a PH!-n is, hogy linkelnek, pedig egyszerűen van itt is megoldva.Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
vakondka
őstag
válasz Speeedfire #806 üzenetére
Van valakinek tapasztalata hogy ajaxos oldalnál hogyan kell kezelni a history-t?
Konkrétan azt szeretném, hogy működjön a böngésző vissza gombja.Ennyi van jelenleg ami betölti az oldalt és beteszi a böngészőbe az aktuális url-t:
(nem hasheket használok, hanem sima URL-t)$("body").on("click", "a[href*='-c-'], a[href*='-p-'], a[href*='extra_info_pages.php'], a[href*='create_account.php'], a[href*='specials.php']", function(e) {
var a_href = $(this).attr('href');
var content = $('#column_content');
var breadcrumb = $('#breadcrumb');
e.preventDefault();
content.fadeToggle();
content.load(a_href +' #column_content', function(){
breadcrumb.load(a_href +' #breadcrumb');
var title = $("h1:first").text();
$(document).attr('title',title);
//State = History.getState();
History.pushState(null, null, a_href);
});https://toptarget.hu - Online Marketing Ügynökség
-
vakondka
őstag
válasz Sk8erPeter #808 üzenetére
Szia,
De pont ez a gondom, hogy nálam nincs hash sehol sem, csak sima url...
az url betöltődése helyett a lecserélődik a tartalom div.https://toptarget.hu - Online Marketing Ügynökség
-
vakondka
őstag
Igen, erre én is gondoltam, csak azon gondolkodom kellene valami rendszer hogy mi legyen a hash...
Egyébként már csak egy eseménykezelő kellene ami érzékeli hogy a visszagombra kattintottak, majd a content divbe betölti azt az url-t ami a böngészőben van.
Ugyanis jelenleg már minden kattintás mutatja a megfelelő teljes url-t a böngészőben
és a vissza gomb szépen visszalép az előző linkre, de csak kiírja.
Le kellene kezelni magát az eseményt valahogyan...[ Szerkesztve ]
https://toptarget.hu - Online Marketing Ügynökség
-
Sk8erPeter
nagyúr
válasz vakondka #811 üzenetére
Ez pont azt a problémát oldaná meg. "Kreál" egy hashchange eventet, amire aztán úgy iratkozol fel a különböző függvényekkel, ahogy csak akarsz. Szóval martonx kommentje jogos, legyen hash mindenképp AJAX-ozás esetén (amennyiben oldalakat töltögetsz be adott divbe, nálad épp ez a helyzet), így könyvjelzőzhető is.
A hash akár lehet a tartalom URL-je is. Jó esetben ezek az AJAX-szal betöltött oldalak elérhetők AJAX használata nélkül is, tehát pl.:
http://example.com/foo/bar#!/some/blabla
ÉS
http://example.com/some/blabla
is működik.
Persze ez nagyon igényfüggő, de szerintem kiindulópontnak teljesen jó.Sk8erPeter
-
Speeedfire
nagyúr
Adott egy form, 2 részre van osztva.
Ha az első rész ki van töltve akkor jelenik meg a 2. része. Viszont a 2. résznél megjelenik egy nullázó gomb.<input id="resetform" class="bal" type="button" name="reset_form" value="Nulláz" onclick="this.form.reset();" >
Ez mind szép és jó, de így nullázza az első részt is, ami nem jó, mert akkor a 2. rész eltűnik ismét. Nem lehet adni valami kivételt a resetnek?
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
martonx
veterán
válasz Speeedfire #813 üzenetére
Kapásból van pár öteletem erre. Annyira bagatell a kérdés, hogy fél perc gondolkodás után biztosan neked is eszedbe jut legalább 1 megoldási lehetőség, így inkább meghagyom neked a ráeszmélés élményét.
Én kérek elnézést!
-
Jim-Y
veterán
-
Speeedfire
nagyúr
1db form van csak. Csak a 2. rész ki van takarva egy fóliával, mint a használtautón. 4 select van, amit nem akarok resetelni, ezen kívül van vagy 50 amit igen.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Sk8erPeter
nagyúr
Hali!
Most én is kérdeznék egy apróságot JSLinttel kapcsolatban.
Itt beszéltünk egy problémáról, a megoldást belinkeltem jsFiddle-ön, JSLint sír:
"Cannot set property 'first' of undefined"
konkrétan ezért:
for (var i in myLinks) {
....
}A var i-re rinyál. Tudtommal ezzel az iterálással alapvetően nincs baj, de nem vágom, miért jelzi, hogy ez így nem jó.
Már máskor is találkoztam ezzel a dologgal, de hogy ezt miért jelzi rossznak, arra még nem jöttem rá.[ Szerkesztve ]
Sk8erPeter
-
Karma
félisten
válasz Sk8erPeter #818 üzenetére
Nem tudom miért nem eszi meg a JSLint, de azért van egy alapvető baj ezzel a foreach iterálással: veszélyes, ha nem ismered pontosan az objektumot/tömböt, amin iterálsz. A hasOwnProperty függvény egy részétől megment, de ha mondjuk van egy fekete doboz jellegű kód (amit mondjuk más nemzet gyermekei nemzettek), ami belekotor az Array prototípusba, akkor vicces eredmények jöhetnek ki.
Tömböt ezért én inkább indexelve szoktam bejárni.
“All nothings are not equal.”
-
martonx
veterán
válasz Speeedfire #815 üzenetére
Viszont mindegyik megoldás szimpla html és javascript ismereteket feltételez, meg némi józan paraszti észt. Kár ilyen apróságok miatt a jquery topik-ot teleszemetelni.
Én kérek elnézést!
-
Sk8erPeter
nagyúr
Igen, igazából itt nem is igazán indokolt ennek az iterációnak a használata, de hirtelen elsőre az jutott eszembe, és tulajdonképpen így, a tömb teljes ismeretében úgy gondoltam, hogy nagyjából most mindegy, mit használok - de egyébként igazad van, előfordul olyan objektum, ahol hülyeségek jöhetnek ki belőle még akkor is, ha látszólag ismered az objektum teljes szerkezetét. Előfordult már, hogy bejártam egy szerveroldalon legenerált objektumot ilyen módon, és baromságok jöttek ki belőle.
Mondjuk akár debuggoláshoz ez még jól is jöhet.Az megint másik kérdés, hogy ez egy sima tömb, és itt van egy elvárt struktúra, tehát max. akkor jönnek ki belőle baromságok, ha valamit elcseszek a kódban. Az ellen meg a sima indexelt for ciklus sem véd meg. Tehát itt lényegében szerintem tényleg mindegy, mivel járom be.
Viszont mivel már találkoztam egy párszor ezzel a hibaüzenettel, úgy gondoltam, már érdemes rákérdezni, mi a franc baja van ezzel. De igazából úgy tűnik, erre nem jöttünk rá. Legalábbis a hibaüzenet ebben a formában értelmetlen és valótlan, meg számomra legalábbis semmit nem árul el arról, hogy mégis konkrétan mi a rossz benne. Miért kellene a "first" property-t állítani? Honnan jön ez? (Költői kérdések! De ha van rájuk válasz, szívesen fogadom. )
DE érdekes, hogy amennyiben így írom:
var i = 0;
for (i in myLinks) {
....
}...akkor ez előző hibaüzenet megszűnik, jön az újabb:
"The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype."
(Most ebben nem ez utóbbi hibaüzenet az érdekes, hanem hogy megszűnt a korábbi parája a "first" property-vel!)És a megoldás:
var i = 0;
for (i in myLinks) {
if (myLinks.hasOwnProperty("text") && myLinks.hasOwnProperty("text")) {
...........
}
}Miért nem rinyál, ha deklarálok neki a cikluson kívül egy i változót?
Ja, amúgy azt előbb elfelejtettem írni, hogy bocs, hogy ide írtam a kérdésem, igazából nem egy jQuery-téma (szóval OFF), de a sima JavaScript topicban kevésbé látlak Titeket (ahova igazából ez való; bár igaz, mondjuk Te épp szoktál ott is aktívkodni), ezért írtam ide.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Sk8erPeter #821 üzenetére
Lejárt a szerk. idő, az előbbi kódban igazából a második feltétel
myLinks.hasOwnProperty("href")
akart lenni.
Ahogy itt látható:
http://jsfiddle.net/Sk8erPeter/zWDpV/2/[ Szerkesztve ]
Sk8erPeter
-
szmegma
aktív tag
Sziasztok.
jQuery-vel frissitem az adatbazisomat es van benne egy szazalek kijelzo a success functionban:
...
success: function(){
var szazalek = (100/max)*id;
$(".szamol").html(id);
$(".szazalek").html(Math.ceil(szazalek));
$(".entry_bar").css({ width: szazalek+"%" });
}
...Ez a szazalek classu divbe irja ki, hogy eppen hany szazalek kesz a teljesbol. Am az a baj, hogy ha Math.ceil(szazalek) formaban irom, akkor felkerekiti a szazalekot, igy a 0.19%-ot is 1%-nak irja.
Ha Math.ceil() nelkul irom, akkor pedig olyan szamsort general, hogy nem latom a veget.A keredesem, hogyan lehetne megadni, hogy mondjuk ket tizedesig mutassa?
Pl. igy gondolom: 12.48%Koszonom.
[ Szerkesztve ]
TV: JZ1000
-
Karma
félisten
válasz Sk8erPeter #822 üzenetére
Ránéztem a developer toolsszal hogy mi lehet, úgy tűnik a JSLintben van valami bug, a 3306-os sornál. Az ott lévő szerkezet nincs is benne a GitHubon aktuális JSLint kódban, úgyhogy valószínűleg régebbi változat, és nem nekünk kell megfejteni
“All nothings are not equal.”
-
Sk8erPeter
nagyúr
válasz Speeedfire #823 üzenetére
Nem bírtam ki, és írtam neked egy komplett példát. Szerintem elég jól szemlélteti.
A jQuery Form Pluginben van egy .clearFields() metódus, azt használtam fel.
Az egyik esetben tagektől teszem függővé, hogy egy adott wrapperen belül melyik mezőket kell törölni, a másik esetben azt használom fel, hogy adtam mindegyik fieldnek egy class-t, így ezt az attribútumot felhasználva végzem a resetelést (itt a HTML5-ös data attribútumot is felhasználtam az egyszerűség kedvéért):http://jsfiddle.net/Sk8erPeter/eQ7ky/
Remélem így már tiszta.
Sk8erPeter
-
Sk8erPeter
nagyúr
Látom itt is írta egy csávó, hogy "remember jsFiddle is just an Alpha version", akkor ezé'.
Azért fasza, hogy ezt használjuk debug céljára.Sk8erPeter
-
Speeedfire
nagyúr
válasz Sk8erPeter #827 üzenetére
Itt ebben te hol hívod meg ezt a plugint? Csak, mert nem látom.
Köszi a kódot, jó kis plugin ez.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Sk8erPeter
nagyúr
-
Speeedfire
nagyúr
válasz Sk8erPeter #830 üzenetére
Na, ez a ficsőrt sem láttam még.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Sk8erPeter
nagyúr
válasz Speeedfire #831 üzenetére
Pedig hasznos.
Szerk.: ugyanitt külső CSS-fájlt is be tudsz tölteni, nem csak JavaScript-fájlt.[ Szerkesztve ]
Sk8erPeter
-
TonTomika
aktív tag
Sziasztok!
Egy olyan problémám lenne, hogy dolgozok egy oldalon és kell készítenem egy 3 szintes menüt, aminek a referencia része dinamikus, mysqlből kéri le az adott menü fájlnevét amit meghív.
Minden oldal 4 szekcióra van bontva, ami ugyan az mindegyik oldalon a tartalmi részt kivéve. (Header, sidebar, content, footer.) A menü a sidebarban van és a következőképpen néz ki:
főoldal
rólunk
szolgáltatások
enteriőrtervezés
enteriőr styling
stb...
referenciák
enteriőr tervezés
ide jönnek az adatbázisból lekért projektek linkjei szépen sorban
enteriőr styling
ide jönnek az adatbázisból lekért projektek linkjei szépen sorban
arculattervezés
itt nincsen egyéb menü, az arculattervezés maga a link
kapcsolat
blogA feladat, hogy mindegyik aktuális menüpont ahol éppen jár az ember highlightolva legyen. Ezt a főbb menüpontoknál, illetve a szolgáltatásoknál megoldottam.
$a = window.location.pathname
$c = "/rolunk";
$e = "/enteriortervezes"
if($c == $a) {
$("body div#nav ul li#1 a").css('color', '#494949');
}...és így tovább, a szolgáltatások meg ugye egy lenyíló menü, és amikor megnyitja az ember, a betöltés után újra összezáródik, ezért kiegészítettem így:
if($e == $a) {
$("body div#nav ul ul#szolgaltatasok").slideDown(0.1);
$(this).attr('display', 'block');
$("body div#nav ul li#3").css('color', '#494949');
$("body div#nav ul ul#szolgaltatasok li#32 a").css('color', '#494949');
}Alap esetben minden lenyíló menü display: block; értékkel rendelkezik.
Amit nem tudtam megoldani:
- ha a szolgáltatások után a referenciákat nyitja le valaki, akkor a szolgáltatások záródjon össze
- ugyan így ha a referenciákon belül az almenüket is lenyitják, akkor a felette lévő almenü záródjon össze (ezek nem képeznek külön aloldalakat, csak a projektek)
- ha megnyitnak egy projektet, akkor ott legyen nyitva a menü és legyen highlightolvaÉn azon a gondolatmeneten indultam el, hogy itt is checkolni kéne első körben, hogy melyik aloldal van megnyitva, és az alapján megadni az instrukciókat, viszont ez ugye dinamikus, és nem tudom, hogy jQuerybe, hogyan vigyem bele a dinamikus változókat.
Egyáltalán jó gondolatmeneten indultam el? Lenyíló dobozokon kívül mást még nem nagyon csináltam jQueryben, szenvedek ezzel már egy ideje, remélem, hogy sikerült érthetően leírnom a problémámat.
Előre is köszönöm, ha tud segíteni valaki!
[ Szerkesztve ]
-
Karma
félisten
válasz TonTomika #835 üzenetére
Végre egy kis élet a topikban.
Hát, az első gondolatom az volt a sorok olvasása közben, hogy téged is elkapott a Not Invented Here (NIH) szindróma - azaz inkább megírod puszta kézzel azt, amire a CMS-eket már mióta feltalálták. Egy kicsit remélem, hogy ez valami ujjgyakorlat, és nem egy valódi vevőnek szánt valódi oldal.
Ömleszteném inkább a további gondolataimat, sok mindenre benne lesz a válasz:
1) Változónevek! $-ral hagyományosan a jQuery által bewrappelt objektumokat szokás jelölni, a sima stringekhez nem annyira pálya. Másrészt nem kell spórolni a betűkkel, az "$a", "$c" és egyéb szutykolás helyett rendes, beszédes neveket használj, és akkor talán olvasható marad a kód két nap múlva is. Nekünk meg azonnal.
BASIC programozó voltál ezelőtt?
2) Ez a rész:
if($c == $a) {
$("body div#nav ul li#1 a").css('color', '#494949');
}Nem csak a c és a olvashatatlan változók miatt rossz. Nem illik (más szóval elítélendő baromság) a JS kódba beleraknod a konkrét CSS stíluselemeket, használj egy új classt hozzá; a színt meg a külső CSS fájlodban definiáld ehhez a classhoz.
Eztán használd az addClass(), removeClass(), toggleClass() jQuery függvények megfelelőjét a kiemeléshez.
3) Nem nehéz elérni, hogy az azonos szinten lévő többi elem becsukódjon, csak használnod kéne a HTML-ben a classokat a különböző szintek csoportosításához.
Pl.:
$(".main-menu-item.submenu").click(function() {
var $item = $(this);
$item.slideDown(0.1).siblings(".submenu").slideUp(0.1);
});Nem teszteltem, csak ideírtam fejből.
4) Dinamikus változók... Minden dinamikus a JavaScriptben bizonyos szempontból. A DOM fa bármikor változhat, ezért lehet a jQuery segítségével megadott feltételek alapján keresni. Például az aktuális menüelemnek adsz egy "highlighted" nevű classt (lásd 2. pont), akkor a $(".highlighted") selector visszaadja ezt az elemet, bármikor.
Ugye hogy értelmetlen közvetlenül a színeket állítgatni?
5) Egyébként mondogatod ezt a dinamikus jelzőt, de használható infó nem jött át.
Mikor is történik ez a DB elérés? Az oldal generálásakor a PHP (vagy más backend) végzi el, így a lejövő oldal igazából statikus; vagy AJAX hívásokkal töltöd le a menüelemeket az oldal betöltődése után? (Utóbbi esetben: miért?)
Egyáltalán ha rákattintasz egy linkre, akkor az újratölti az oldalt? Vagy új ablak? iframe? Vagy sikerült framesetet használni 2012-ben? (Brrrrrrrrr)
Ezek a kérdések elég fontosak, mert más megoldási lehetőségeket lehet az esetekben csinálni...
6) Egyébként ha tényleg dinamikus, akkor az .on() függvény segítségével tudsz eseménykezelőket rendelni a HTML elemek egy csoportjához - már előre, azelőtt, hogy ténylegesen létrejöttek volna. Nagy királyság. De nem biztos, hogy neked ez tényleg kell...
Szóval összegezve az biztos, hogy meg kellene barátkoznod a HTML-ben classok fogalmával, és sürgetőlegesen alkalmaznod a problémára.
[ Szerkesztve ]
“All nothings are not equal.”
-
martonx
veterán
Még annyit tennék hozzá, hogy ha esetleg nem is akarsz CMS-t, de tele van az internet jobbnál jobb jquery menu pluginokkal. Tényleg nem kell minden esetben a kereket újra és újra feltalálni.
Mármint ezt nem Karma-nak akartam címezni, hanem TonTomika-nak, csak így sikerült
[ Szerkesztve ]
Én kérek elnézést!
-
Karma
félisten
Kiegészítendő az előzött egy kicsit, a menük nyitott/csukott állapotát is praktikus egy classal jelölni, így egy tök egyszerű hasClass hívással meg tudod állapítani, hogy egy adott elejű milyen állapotban van.
Másrészt a példakódom nem jó, mert a kattintott elem tűnik el, pedig az csak a fejléc (amiknek mindig láthatónak kellene maradnia. Így a valódi megoldás kicsit bonyolultabb, de mobilról nem mennék bele, bocs.
Amúgy legördülő menükről nemrég szólt a topik már egyszer, elég részletesen.
martonx: jaja tényleg, meg is akartam említeni A CMS-re a "DB-ből dinamikusan letöltött aloldalak" miatt gondoltam főleg.
[ Szerkesztve ]
“All nothings are not equal.”
-
Sk8erPeter
nagyúr
válasz TonTomika #835 üzenetére
Karma és martonx tök jól leírták a lényeget - többek közt amit én is nagyon hangsúlyoznék: ne gányolj, és soha többé ne használj ilyen semmitmondó fos változóneveket, mert normális fejlesztőnek az ilyentől széjjelnyílik az agya, aztán szíve szerint utolsó leheletéig ütné azt, aki ilyet csinált.
Még valami:
van ez a kódrészleted:
$("body div#nav ul ul#szolgaltatasok")
Mivel itt egyedi azonosítók tartoznak ezekhez a DOM-elemekhez, tökéletesen felesleges ilyen rohadt hosszú selectort írni. Elég ennyi:
$("ul#szolgaltatasok")
vagy akár az ul-t is lehagyhatod, bár ez még nem árthat, mert legalább egyértelművé teszi, hogy itt egy listáról van szó.
Ezenkívül egy kissé általánosabban kéne megírnod a kódjaidat, nem "bedrótozni" az egyes menüelemekhez tartozó viselkedést. De asszem hasonlót már leírt Karma is. A lényeg, hogy tényleg legyenek class-aid, és azok megléte vagy nem léte szerint viselkedjenek az elemek."A feladat, hogy mindegyik aktuális menüpont ahol éppen jár az ember highlightolva legyen."
Ezt gyorsan felejtsd el, hogy ilyen window.location.pathname-hez hasonló hülyeségekkel szívatod magadat, feltételezem, itt egy NEM AJAX-szal legenerálódó menüről van szó - az aktív menüpontot jelző class-t normális esetben szerveroldali nyelvvel (pl. PHP-vel) szokták belegenerálni az adott menüpontba.
Tehát ha mondjuk van egy <ul> listád, akkor pl. a "rolunk" oldalon van egy "active" (vagy épp "highlighted" class, mint ez:
<ul>
<li><a href="/XYZ">XYZ</a></li>
<li class="highlighted"><a href="/rolunk">Rólunk</a></li>
....
</ul>Remélem érthető így.
Ami még fontos, és amire martonx is célzott: a lenyíló menük problémáját már előtted megoldották mások, úgy, hogy agyontesztelték mindenféle böngészőben, úgyhogy tényleg ne most találd fel a spanyolviaszt.
Ajánlott plugin lenyíló menüs macerára: Superfish.
jQuery-alapú, egyszerű, faszányos.Sk8erPeter
-
TonTomika
aktív tag
Huhh srácok, köszi a sok jó választ.
Megpróbálok szépen sorban válaszolni mindenre.
Az első gondolatom nekem is az volt, hogy keresek egy már megírt scriptet a menüre, találtam is egyet, csak nem vált be, nem tudtam rendesen ráhúzni az én menümre. Viszont ez a Superfish jónak tűnik, ezt mindenképpen megnézem!
Ez a kódrészlet csak egy teszt egyébként, azért van így kódolva, egyébként nem BASIC örökség, csak hirtelen ez így egyszerűbbnek tűnt. Ki kell, hogy ábrándítsalak, ez most egy valódi vevőnek szánt honlap, ám azért is nem választottam CMS-t mert nagyon egyszerű felületre van szüksége, csak képfeltöltésre a megfelelő projekt menüpontjába, ahol egy nivo slider váltogatja a képeket. A WordPresst ismerem és szeretem is, de ehhez a projekthez túl soknak gondoltam, aztán lehet hogy kicsit megszívattam magamat.
Ezen kívül még elég sok megkötés volt, ezért gondoltam hogy egyszerűbb egy kis sajátot írni, főleg úgy hogy szerettem volna gyakorolni a php-t. De ezzel nem is volt probléma, csak a jQueryvel szívok mindíg.
Ez class dolog nem is értem, hogy miért nem jutott eszembe, tényleg teljesen egyértelmű, ezt benéztem.
Nem frameset, annyi az egész, hogy minden aloldal egy php include-al meghívja az azonos oldal elemeket.
A menüt sima html-ben írtam meg, kivéve csak a változó <li> elementnél van egy mysql_fech_array függvény. Ez az adott kategóriához tartozó projektnevű linkeket generálja le, tehát pl csak az enteriőrtervezéshez használtakat.
Apropó, találtam a tutsplus.com-on egy olyat, hogy jQuery 30days ingyenes videós tananyag. Ezt lehet hogy érdemes lenne végigtolnom...
Köszönöm még egyszer a jótanácsokat!
-
Sk8erPeter
nagyúr
válasz TonTomika #840 üzenetére
"Ez a kódrészlet csak egy teszt egyébként, azért van így kódolva, egyébként nem BASIC örökség, csak hirtelen ez így egyszerűbbnek tűnt."
Ha most kezded az érdemi kódolgatást, akkor tényleg szokj le róla még időben, hogy ilyen változóneveket használj, még tesztnek sem alkalmas, mert lehet, hogy később szeretnéd ezt a tesztet továbbfejlesztgetni, aztán már fingod nem lesz róla, hogy milyen változó mi a francot csinál."Ki kell, hogy ábrándítsalak, ez most egy valódi vevőnek szánt honlap, ám azért is nem választottam CMS-t mert nagyon egyszerű felületre van szüksége, csak képfeltöltésre a megfelelő projekt menüpontjába, ahol egy nivo slider váltogatja a képeket. A WordPresst ismerem és szeretem is, de ehhez a projekthez túl soknak gondoltam, aztán lehet hogy kicsit megszívattam magamat."
Na, akkor ezt még most, az elején még egyszer gondold át.
Úgyis tuti, hogy az lesz, hogy a vevő majd rájön idővel, hogy akar admin-felületet is, rájön, hogy hoppá, mégis kéne egy plusz valami bele, aztán még valami, és akkor eljutsz oda, hogy döngeted a fejed a falba, hogy a francért nem használtál inkább CMS-t már az elején. Egy normális hosztingnál el kell, hogy bírja megfelelő tempóval az amúgy erőforrás-igényes CMS-t is.
A másik: nehogy már 2012-ben FTP-vel feltöltött fájlokat olvasson be a scripted egy könyvtárból, aztán azt listázza ki agyatlanul sorrendben...
Már ilyen pluginek vannak, mint a Plupload, amivel szépen lehet egyszerre sok fájlt feltölteni, és ezt lekezelheted PHP-vel, feltöltheted az elérési utakat adatbázisba, stb... de tuti, hogy van erre valami Wordpress-modul is (Drupalban van, tuti, hogy WP-ben is van).Ha ez most egy vevőnek szánt honlap, nem hiszem, hogy az ő weboldalát kéne ujjgyakorlatnak használni.
Sk8erPeter
-
TonTomika
aktív tag
válasz Sk8erPeter #841 üzenetére
Van hozzá admin felület is, direkt azért lett így csinálva, mert ő nem akar kódokban meg ftp-n turkálni. Így van egy felület, amin fel tudja tölteni a képeket, amiket megcímkéz a projektjei nevével, az adatok bekerülnek az adatbázisba a fájl pedig egy mappába.
Projektet is így hoz létre, kiválasztja, hogy melyik referencia kategóriába szeretné betenni, beírja a nevét és elmenti. A háttérben némi adat szintén eltárolódik az adatbázisban, illetve egy template.php fájlt duplikál, elmenti az adott névre és beszúr egy sort a megfelelő helyre (így kiegészítve a mysql lekérdezést). Tehát így létrejönnek fizikálisan is az adott aloldalak. A feltöltött képek is szépen mappában rendezve helyezkednek el az ftp-n.
Szöveges tartalom nem kerül feltöltésre, (ami van az fix, nem változó tartalom lesz) csak a képeket kell menedzselni meg a menüpontokat hozzá.
Külön kérésre beépítettem még neki egy backup modult (erre kerestem sample-t), így egy gombnyomással tudja backupolni az admin felületben az egész ftp+sql tartalmat ami egy adott mappában zippelve tárolódik az ftp-n illetve le is tudja menteni ezt.
Az oldalnak a dizájn szempontjából elég sok megkötése van, szóval ebből kifolyólag nem is nagyon fog változni. Külön kikötés volt, hogy úgy kell mindent megoldani, hogy nem jelenhet meg sehol a scrollbar (ugye ez ablakméretfüggő, de a legtöbb monitoron nem fog megjelenni), ne kelljen görgetni sehol, és legyen az egész nagyon minimál, flash pedig teljes mértékben kizárva (ezt én is így gondolom). Szóval ez egy ilyen közös kialakítás volt, az elején én is wp-ben gondolkodtam, de aztán ez elvetésre került. Elmondta pontosan, hogy mit akar és hogy akar, ezt kellett megoldani a lehető legegyszerűbb formában. Természetesen amikor ezt így megbeszéltük hogy nem lesz görgetés, mondtam, hogy akkor minden méret és karakterszám FIX, és ez így lesz egy oldal, bővíteni nem igazán lehet.
Jó ez a superfish, már csak azt kell megoldanom, hogy a menüpontok kattintásra nyíljanak, ne hoverre, és ne mellette jelenjen meg, hanem alatta egy kicsit behúzva. Még egyébként ezt néztem, csak ez nem három szintes menü.
[ Szerkesztve ]
-
-
TonTomika
aktív tag
Sziasztok, újra itt.
Jelenleg ott tart a menü, hogy kattintásra szépen lenyílik, és ha egy másik menüt kattintok akkor összezáródik, valamint nem veszi hivatkozásnak azokat a menüpontokat, aminek még van almenüje.
Most már csak azt kell megoldani, hogy az aktív menü, tehát mondjuk referenciák > enteriőrtervezés > projekt2 hivatkozás aktív, ez az aloldal van megnyitva, akkor ez az elem, illetve a felette lévő kettő, kapja meg az active class-t hogy láthatóan ki legyen emelve.
Említettétek, hogy php-val oldjam meg az active class beszúrását, ez odáig oké, hogy egy változóban már letároltam az adott oldal url-jéből a fájlnevet (kiterjesztés nélkül, mert a hivatkozások is kiterjesztés nélkül vannak).
Én onnan indultam el, hogy a html <a href="#"> linket kéne egy if függvénnyel összevetnem a változóban letárolt fájlnevet, és ha true; akkor beírja hogy class="active" ha pedig false; akkor nem ír be semmit. Ezek után pedig jQueryben gondoltam valami úton-módon az ő parent elementjeinek is egy active class-t adni.
De hogyan csinálok az egyedi href elementből egy olyan általánosított változót, amit mindegyik menüpontnál tudok alkalmazni?
Van-e esetleg egyszerűbb megoldás?
[ Szerkesztve ]
-
Speeedfire
nagyúr
válasz TonTomika #845 üzenetére
Ehhez miért kell php? Elvileg ha megvan csinálva az ul li ul li szerkezet akkor a parent is aktív lesz.
Illetve ha így css-el nem megy akkor inkább maradj a jquery mellett szerintem.
Ha children amire kattintasz akkor a parent-nak adj egy addclass-ot, ha nem akkor csak annak. Illetve ha már elkattintasz akkor az előzőnek egy removeclass. Gondolom valami jó kis jquery-t írtál rá, nem néztem meg. De szerintem simán beágyazható ez a plusz kód.Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Sk8erPeter
nagyúr
válasz Speeedfire #846 üzenetére
Itt leírtam, miért kell PHP, hogy ne bohóckodjon JavaScripttel, hogy kiderítse, melyiket is kéne megjelölni aktív menüpontként.
"Elvileg ha megvan csinálva az ul li ul li szerkezet akkor a parent is aktív lesz."
He?
Mitől lenne aktív attól, hogy a gyerekelemben van egy "active" class mondjuk?Amúgy amiket írsz, az ide-oda kattintgatós módszernél, hogy kattintáskor leszedje a class-t, hozzáadja, stb., ahhoz az kell, hogy AJAX-szal jelenítse meg a tartalmakat. Én nem láttam ilyen utalást a hsz.-eiben, bár lehet, hogy volt, én már annyira nem bírtam követni az egészet.
Sk8erPeter
-
TonTomika
aktív tag
válasz Speeedfire #846 üzenetére
Mert a jQueryt azt nem igazán ismerem és nem tudtam, hogy ezzel is lehet a href attribútumot vizsgálni.
Most már szépen kiadja a színezést, az almenükben és az al-almenükben is.
A teljes kód:$(document).ready(function(){
var str = location.href.toLowerCase();
$("ul.nav li a").each(function() {
if (str.indexOf(this.href.toLowerCase()) > -1) {
$("li.highlight").removeClass("highlight");
$(this).parent().addClass("highlight");
}
});
$("li.highlight").parents().each(function(){
if ($(this).is("li")){
$(this).addClass("highlight");
}
});
});
(function(){
$('ul.nav li ul').hide();
$('ul.nav a').on('click', function(e){
if ($(this).siblings('ul').size() > 0){
var links_parent = $(this).parent(),
other_menu = links_parent.siblings('li').children('ul'),
submenu = $(this).siblings('ul');
other_menu.slideUp('200');
submenu.slideToggle('200');
e.preventDefault();
}
});
})();Most már csak az hiányzik, hogy a .highlight class-al rendelkező elemeket az aloldal betöltése után kibontsa a megfelelő helyen, de az istennek sem akar összejönni.
Elméletben annyi, hogy miután hideolja az elementeket, kiválasztom a .highlight class elemek parent ul-jét és megmondom nekik hogy .slideOpen(); nem?
Sorry ha kicsit kuszán írtam le a dolgokat...
[ Szerkesztve ]
-
Sk8erPeter
nagyúr
válasz TonTomika #848 üzenetére
Ja jó, felfogtam, mi kéne, most látom a belinkelt oldaladat.
"Mert a jQueryt azt nem igazán ismerem és nem tudtam, hogy ezzel is lehet a href attribútumot vizsgálni. "
JavaScripttel mindent lehet "vizsgálni", és mivel a jQuery tulajdonképpen a legtöbb JavaScriptes művelet köré épít egy "wrappert", ezáltal egyszerűbbé téve a használatát, ezért jQuery-vel is mindent lehet "vizsgálni".Igazából mi értelme a "highlight" class-odnak, ha semmit nem csinálsz vele?
Ha jól értem, itt valami olyasmit csinálsz, hogy hozzáadod az aktív elemhez, meg minden szülőelemhez is... bár ezt nem így csinálnám, de ha már így van, akkor a highlight class-nak adhatnál egy display:block tulajdonságot, hogy eleve nyitva legyen. Vagy hasonló. Mondjuk akkor már másképp kéne elnevezni...
Igazából azt szokták jelezni, hogy melyik MENÜPONT aktív, nem szokás a szülőknek is megadni az aktív tulajdonságra jellemző osztályt.
Lényeg, hogy amikor lekéred az oldalt, akkor a menühöz szerveroldalon kéne hozzácsapni azt a tulajdonságot, amitől nyitva maradnak ezek a menük.Esetleg feltölthetnéd jsFiddle-re a kódot, akkor tuti több kedvünk lesz szórakozni vele.
Sk8erPeter
-
Speeedfire
nagyúr
válasz Sk8erPeter #847 üzenetére
Jogos. Úgy néz ki erre már nem is gondoltam.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
Új hozzászólás Aktív témák
- Kerékpárosok, bringások ide!
- Übergyors Samsungnak próbál látszani egy hamisított NVMe SSD
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Fűnyíró topik
- Marvel Snap
- Nintendo Wii
- Xbox Series X|S
- eBay-es kütyük kis pénzért
- Kormányok / autós szimulátorok topicja
- További aktív témák...
- iPad Air 1 alkatrésznek eladó
- A képen látható PC házak egyikét keresem
- BONTATLAN ÚJ iPad Pro 2021 2022 M1 M2 Chip 11 és 12,9 128-2000GB DEÁK TÉRNÉL AZONNAL ÁTVEHETŐ
- ÚJ Bontatlan Macbook Pro 16 M3 Pro 12CPU/18GPU 36GB/512GB SSD Magyar billentyűzet Azonnal átvehető.
- BESZÁMÍTÁS! GIGABYTE WindForce 2X GTX 960 4GB GDDR5 videokártya garanciával hibátlan működéssel