Autor Zpráva
ybznek
Profil
vysvětlím na příkladu:
$("#content").html('<span id="idcko">a</span>');
$("#idcko").click(function(){
//akce
});

Nechme stranou, že by se neměla měnit DOM struktura.

Jde o to, že se mi na takhle podobně vepsaný kód neaplikujou potřebné události

funguje to, pokud mám
$("#content").html('<span id="idcko">a</span>'+'<script type="text/javascript"> $("#idcko").click(function(){ /*akce*/ });</script>');


v dokumentaci jsem nenašel, žeby metoda html() měla nějaký callback.

nemáte nějaké "správnější" řešení?

edit:
ještě by se teoreticky daly přidat události do kódu a pak kód s událostmi vložit do stránky
ale já chci spíše "počkat" dokud do kódu události nepůjdou vkládat
joe
Profil
Takhle by to mělo fungovat

$("#idcko").live("click", function (event) {
    // akce
});
_es
Profil
ybznek:
Takéto veci idú, úplne jednoducho, v skoro všetkých prehliadačoch rovnako, spraviť aj bez jQuery.

funguje to, pokud mám
Keď už to riešiš takým spôsobom, prečo nepoužiješ atribút onclick?
ybznek
Profil
_es:
protože to byl příklad
joe:
možná by to šlo, ale toho kódu už je poměrně více, co se provádí a potřebuju to nějak centrálně
Chamurappi
Profil
Reaguji na ybznka:
v dokumentaci jsem nenašel, žeby metoda html() měla nějaký callback
Změna innerHTML probíhá okamžitě, není nutný callback.

ale já chci spíše "počkat" dokud do kódu události nepůjdou vkládat
Jestli toho je víc, vyrob si funkci, které předáš selektor a HTML kód, ona přepíše innerHTML a nastaví potomkům přepsaného elementu patřičné události.
joe
Profil
ybznek:
Nerozumím, pokud nastavíš události (třeba ten click) přes funkci live, nebudeš ji těm nově vytvořeným elementům se stejným ID (správně by ID mělo být jen jedno) už muset přiřazovat, dejě se to automaticky.

Takže nejlepší bude, když projdeš elementy v tom HTML kódu který vkládáš a nastavíš elementům to, co potřebuješ (vlastně to už Chamurappi napsal)

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