URL -be beírás
<ul id="nav">
<li><a href="0">-Összes-</a></li>
<li><a href="1">példa</a></li>
jquery
$('ul#nav li a').click(function(){
var page =$(this).attr('href');
$('#content').load('content/betol.php?page='+page);
return false;
});
Van egy menü <a> tagben pedig azonosító számok vannak amiket gettel elküldök egy másik oldalnak. A tartalom megváltozik de nem töltődik újra az oldal és az URL is ugyan az marad.
Én azt szeretném hogy be íródjon az URL-be a cím így pl: az 1,2 menüre kattintva:
URl:
content/betol.php?page=1,2
nemrég volt hasonló
history api
Több ponton lehetne jobbá
1, a felsorolásban a linkek href-jei mutassanak a valós url-re:
<li><a href="content/betol.php?page=0">-Összes-</a></li>
Ezzel két legyet ütsz egy csapásra:
a, ha publikus az oldal, minden kereső be tudja indexelni a mutatott oldal tartalmát; ha marad a href="0", akkor a kereső botja a http://oldalad.hu/0 címet szeretné megismerni, ami ugye nem létezik
b, egyszerűsödik a scripted, a megfelelő rész:
$('#content').load(page);
2,
$('ul#nav li a')
A böngésző a következőképp működik ilyenkor:
a, megkeresi azt az elemet, amelyik id-je "nav"
b, leellenőrzi, hogy az <ul>-e
c, megkeresi az összes <li> elemet a #nav-on belül, beteszi egy tömbbe
d, végigiterál a c, pontban összeállított tömbön, megkeresi az összes <a> elemet
A négyből két pont teljesen felesleges:
a, egy dokumentumon belül minden elemnek egyedi id-vel kell rendelkeznie, emiatt a #nav elem csak és kizárólag az adott <ul> lehet
b, az <ul>-en belül lévő <a> elemeket mind arra használod, hogy tartalmat tölts be, és ezek az <a>-k mind <li>-n belül vannak, ezért a <li>-ken felesleges végigiterálni.
Tehát a következő parancs eredménye ekvivalens a fentivel, de legalább kétszer olyan gyors:
$('#nav a')
Köszönöm szépen meg is
Annyi probléma azért föl merült még, hogy ha return false-ot beszúrom a $('#content').load(page);
után. Rákattintanak a menüre, akkor nem változik meg az URL és nem tud rálinkelni a felhasználó. Erre valami ötlet?
Olvasd el az első
köszönöm elolvastam és