October 7, 2011 | In: Javascript, work
Highlight meniu in pagina curenta
De departe este cea mai fiabila si simpla solutie client-side pentru problema din titlu, cel putin din cate am intalnit pana acum.
$('nav a[href="'+window.location.pathname+'"]').parents('li').attr('class', 'current');
PS: In exemplul meu ma folosesc de un framework Javascript, jQuery, si meniul meu se afla intr-o lista neordonata.
Am evitat orice solutie server-side, cred ca din considerente deja cunoscute de voi. ![]()
Cunosti o alta solutie?
Poti salva o viata cu un gest marunt! Cat valoreaza oare zambetul unui copil?



5 Responses to Highlight meniu in pagina curenta
Armin
October 7th, 2011 at 6:04 pm
De ce ai evitat server-side? Ar trebui sa ai id-ul paginii curente asociat si in meniu…
birkof
October 8th, 2011 at 8:51 am
@Armin pentru ca e o “procesare” in plus
Nu m-am prins de faza cu id-ul, la ce bun?
Armin
October 8th, 2011 at 9:51 am
Fix ca sa o procesare cat mai mica in plus. Sa zicem ca meniul e un array, ai nume, link + id-ul paginii pentru fiecare menu item. Apoi trebuie doar sa vezi daca id-ul paginii curente e identic cu cel din menu item curent (cand afisezi meniul).
In fine, prefer server-side la chestii din astea, ca de obicei poti sa tragi un cache si lasi chestiunile dinamice pentru JS.
Hy_noroCK
October 12th, 2011 at 8:58 am
singura problema a acestui script e ca iti va schimba clasa elementului ABIA dupa ce iti incarca pagina, daca ar fi server side iti pune clasa de selected exact cand iti scrie elementul respectiv din meniu
birkof
October 12th, 2011 at 9:53 am
Corect, insa pana-ti incarca elementele din site poti pune foarte simplu un preloader, si asa ai rezolvat cu acest “delay”