ugrás a tartalomhoz

URL -be beírás

fejere · 2013. Feb. 5. (K), 09.12
<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;
	});
Most kezdtem a jquerit használni az egész oldalt erre, vagy ilyen kódra építettem.
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
És továbbra se töltődjön újra az oldal.
 
1

nemrég volt hasonló

szabo.b.gabor · 2013. Feb. 5. (K), 10.02
nemrég volt hasonló téma.

history api
2

Több ponton lehetne jobbá

Hidvégi Gábor · 2013. Feb. 5. (K), 12.49
Több ponton lehetne jobbá tenni a kódodat.

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')
3

Köszönöm szépen meg is

fejere · 2013. Feb. 5. (K), 14.44
Köszönöm szépen meg is fogadtam a tanácsodat.
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?
4

Olvasd el az első

Poetro · 2013. Feb. 5. (K), 15.13
Olvasd el az első hozzászólásban linkelt témát.
5

köszönöm elolvastam és

fejere · 2013. Feb. 5. (K), 16.03
köszönöm elolvastam és szerintem is ez lehet az orvosság a problémára csak még meg kell találnom, hogy hogy alkalmazzam