Autor Zpráva
jan98
Profil *
Zdravim, mam problem.

Přes jquery ajax volam "obsah" z obrazky.php
$(document).ready(function(){
$("#strankovani a").click(function(e){
$("#obrazky").html("Nahravani..").load("obrazky.php?o="+$(e.target).text()+"");
});
});


loadovany obsah z obrazky.php se vrati do divu #obrazky.

Zaroven mam uvnitr obrazky.php napsano:

echo '<script>$(document).ready(function(){

 $("#strankovani").html(\''.$t['navigace_odkazy'].'\');
 
});</script>';


Coz mi vlastne jeste rovnou vrati odkazy pro strankovani a vyplivne do divu #strankovani aktualni stranu apod.

Problem je v tom ze kdyz pak chci kliknout na nejaky odkaz z toho vraceneho strankovani - jquery to uz vubec neregistruje tzn. neregistruje vubec tu funkci ".click(function(e){...".

Kde je chyba?

Diky
jan98
Profil *
a jeste poznamka funguje to jen v pripade kdyz cely ten kod "$("#strankovani a").click(function(e){ ..." zkopiruju do toho vraceneho echa.

takze to vypada jakoby tam nemohlo byt 2x $(document).ready(function(){
_es
Profil
jan98:
Sprav to nejako normálne, okrem iného napríklad tak, aby v obsahu nahratom cez tú jQuery metódu nebol element <script> a nejako menej chaoticky-komplikovane.
Ak načítaš nový obsah, tak sa samozrejme udalosti naviazané priamo na starý obsah odstránia.
jan98
Profil *
_es: nevím jak "méně chaoticky" by to šlo. Protože se pošle 1x ajax požadavek GET (více by zbytečně zatěžovalo server) a vrací se obrázky a stránkování zároveň, při čemž potřebuju obrázky a stránkování vložit každé do jiného divu.

_es:
Ak načítaš nový obsah, tak sa samozrejme udalosti naviazané priamo na starý obsah odstránia.

To je jasné, javascript:

$(document).ready(function(){
$("#strankovani a").click(function(e){
$("#obrazky").html("Nahravani..").load("obrazky.php?o="+$(e.target).text()+"");
});
});


není samozřejmě v divu kam se načítá vrácený obsah z ajaxu.

Každopádně pokud chci aby mi to fungovalo tak musím mít jeden skript v html. A pak druhý úplně ten samý musím zkopírovat do obrazky.php, což se pak vypisuje jako echo.

Takto to funguje, ale musím to mít prostě 2x.
jan98
Profil *
_es: nevím jak "méně chaoticky" by to šlo. Protože se pošle 1x ajax požadavek GET (více by zbytečně zatěžovalo server) a vrací se obrázky a stránkování zároveň, při čemž potřebuju obrázky a stránkování vložit každé do jiného divu.

_es:
Ak načítaš nový obsah, tak sa samozrejme udalosti naviazané priamo na starý obsah odstránia.

To je jasné, javascript:

$(document).ready(function(){
$("#strankovani a").click(function(e){
$("#obrazky").html("Nahravani..").load("obrazky.php?o="+$(e.target).text()+"");
});
});


není samozřejmě v divu kam se načítá vrácený obsah z ajaxu.

Každopádně pokud chci aby mi to fungovalo tak musím mít jeden skript v html. A pak druhý úplně ten samý musím zkopírovat do obrazky.php, což se pak vypisuje jako echo.

Takto to funguje, ale musím to mít prostě 2x.
_es
Profil
jan98:
Takto to funguje, ale musím to mít prostě 2x.
Nahrávať element <script> cez metódy jQuery knižnice do nejakého elementu na stránke nepotrebuješ.
Pozri si, respektíve zamysli sa nad tým, kedy je vyvolaná jQuery udalosť $(document).ready.
JQuery metóda load vyvoláva vlastné udalosti, viď druhý ukážkový kód v oficiálnej dokumentácii.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0