Autor Zpráva
Lorem
Profil *
Dobrý den,
mám dotaz ohledně click eventu v javascriptu. Při kliknutí na jakýkoliv odkaz se vykoná click event. Vše funguje jak má, pokud však kliknu na odkaz, který je v includovaném php souboru, javascript tento event úplně ignoruje. Setkal se s tím z vás někdo, nebo víte, jaké je řešení problému?

Předem děkuji za reakce a tipy.
juriad
Profil
PHP s událostí klikání v javascriptu nemá vůbec nic společného. PHP se napřed celé vykoná a potom po dlouhém putování často přes půl světa se stránka zobrazí v prohlížeči a až tam můžou nastávat události kliknutí.

Nejspíš špatně includuješ ten soubor. Ukaž živou ukázku (stránku, na které se chyba projevuje).
Lorem
Profil *
Zkusím to trošku zjednodušit.
- V Indexu (v hlavě) je naincludován jQuery.
- V Indexu (v patě) je naincludován JS s $('a').on('click', function () {... eventem.
- Po kliknutí na odkaz event jednoduše ajaxem zavolá PHP script, do něhož se podle url (které dostal z ajaxu) naincluduje konkrétní soubor (např. text s odkazy).
- To vše se následně zapíše do divu a změní url.
- Vše funguje jak má, jen odkazy v tom includovaném souboru event úplně ignoruje. Když zruším jednu úroveň includování, tak už je vše ok, ale co se přehlednosti v kódu týče, je to ještě horší, jak kdyby to nefungovalo :(
juriad
Profil
To je tím, že příkaz
$('a').on('click', function () {
nastaví posluchače události click všem v té době existujícím odkazům.
Odkazy, které vzniknou později, třeba vložením odpovědi ze serveru do divu, toto vůbec neovlivňuje, ani nemůže.
Lorem
Profil *
aahaa, takže k řešení problému by mělo stačit, aby se při vytvoření nových odkazů pouze aktualizoval i celý script?
Případně je nějaké šetrnější řešení?

Mockrát děkuji
juriad
Profil
Přečti si kapitolu Direct and delegated events v dokumentaci .on().
Nejspíš tedy chceš něco jako:
$(document).on('click', 'a', function() {

JQuery však neznám tak dobře, nevím jestli je to dobrý nápad.
Nezapomeň také na to, že stránky pro uživatele bez JS a vyhledávače nebudou (dost pravděpodobně) fungovat.
Lorem
Profil *
Prostuduji a uvidím, co se dá dělat.
Co se vyhledávače týče, tak je to vše v pořádku. Aplikace je podmíněná přihlášením a indexování zakázáno.

Ještě jednou děkuji za pomoc.

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