Autor Zpráva
tany
Profil *
Ahoj, sem php developer a v javascriptu moc nedělám. Potřebuju postavit ajax backend. Řeším jak volat ajax a jak potom provádět js na response.

Volání ajaxu mám udělané přes onclick event, kde mám funkci getAjax(url,target), což se mi moc nelíbí .. není tu jiná možnost jak tato volání dělat (validita mě v Backendu moc nezajímá - takže by šlo udělat funkci která bude zachytávat onclick event a sbírat si další atributy z elementu pro ajax)

Což mě přivádí k druhému problému, jak potom na response zachyvávat tyto události ? (třeba budu dělat smyčku klikáním na nový článek a zpět)

Celkově by se mi hodil nějaký good practics příklad ohledně ajax site .. díky předem za typy
ShiraNai7
Profil
tany:
No určitě bych nepsal javascript přímo do kódu přes atributy pro události (onclick atd). V názvu tématu máš zmíněnou knihovnu jQuery, tak proč nepoužít tu?

Externí js soubor vkládaný do hlavičky pomocí <script src="..." type="text/javascript"></script>:
$(document).ready(function(){
  // #id_elementu je samozrejme jen priklad
  $('#id_elementu').click(function(){
    // neco po kliknuti na element
  });
});


Pro ajaxová volání jsou taky funkce v jQuery, viz dokumentace.
Pořádně nechápu, kde je vlastně problém :)
tany
Profil *
no v tom, že mi prostě jquery nereaguje na události elementů získanch přes ajax ... jakoby nebyly vůbec v DOM ..
ninja
Profil
tany: .live()
tany
Profil *
ninja:
hah to je ono co potřebuju :)

dík
Chamurappi
Profil
Reaguji na tanyho:
Nepotřebuješ. Stačí ti nastavovat události v callback funkci.
_es
Profil
tany:
no v tom, že mi prostě jquery nereaguje na události elementů získanch přes ajax ... jakoby nebyly vůbec v DOM ..
Tie ovládače udalostí boli pridané len k elementom existujúcim v čase tesne po načítaní stránky.

ninja:
tany: .live()
Alebo dodatočne doplniť funkcie k udalostiam.
tany
Profil *
to myslíš něco v tomto smyslu ?

$('#somenthing').click(function(e){
e.preventDefault();
  $.ajax({
    xxx,
    complete : function (){
      call_back(); 
    }
  })
})


nad tím sem taky přemejšlel, ale to mi bohužel bude dělat problémy s MVC, tam budu muset (stejně jako u live() ) vědět co vše se zrovna posílá do layoutu .. (mám layout pro ajax), takže udělat další hook na javascript a tam stackovat všechny metody a události co jsou v daným response .. že bych se na ajax nev*sral :D
tany
Profil *
btw reinit DOM asi možný není co ? .)
_es
Profil
tany:
Z tých strašne „in“ english výrazov som trochu dezorientovaný, no:
Ako argumenty nemusíš do jQuery metód dávať len anonymné funkcie, môžeš predať aj normálnu pomenovanú funkciu.
Len na toto ti jQuery prácu nijak neuľahčí, normálne priradenie funkcie do onclick vlastnosti je jednoduché viac než dosť.

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: