Autor | Zpráva | ||
---|---|---|---|
Legáček Profil |
#1 · Zasláno: 29. 8. 2012, 22:51:42
Dobrý den,
prolezl jsem mnoho webových stránek a podle mě je odpověď .live() , .delagate() nebo .on() , i když ta mi moc nefunguje, ale zeptám se ještě tu, jestli není lepší způsob.
Mám stránku index.php, na kterou hned pomocí Jquery-Ajaxu načítám html kód do <div id="nacti"></div> . Všechno běží, tabulka se načte. Jelikož ale načítám html tagy a různý obrázky třeba, tak zde začíná problém. Vše se načte a já v jquery mám, že pokud kliknu na obrázek, má se zobrazit lightbox. To ale nefunguje, protože jsem načítal vše pomocí Ajaxu.
Hledal jsem a našel jsem, že by to šlo udělat $('a[class=cesta]').live('click', function(){$(this).lightBox();}); To mi bohužel na lightbox nefunguje. Zkoušel jsem .live() na jiné věci, jako třeba vymazat řádek v tabulce (opět pomocí Ajaxu) a to mi fungovalo.
Takže shrnuto, chci aby jsem měl tabulku, která se načítá ajaxově, abych při každý operaci (jako vymazat řádek) nemusel reloadovat stránku, ale zase chci, aby mi fungoval Lightbox a celkově jestli funkci .live() využívám správně.
Děkuji za odpovědi |
||
Keeehi Profil |
#2 · Zasláno: 29. 8. 2012, 22:59:31
Legáček:
Ano, funkci live využíváte správně. |
||
Chamurappi Profil |
#3 · Zasláno: 29. 8. 2012, 23:02:20
Reaguji na Legáčka:
Co dělá ta funkce lightBox ? Nedělá náhodou jen to, že nastaví určitou reakci na událost click ? Tu už nemá moc smysl nastavovat při kliknutí.
Když načítáš věci AJAXem, po načtení se zavolá callback funkce — v ní můžeš novému obsahu nastavit všechno, co potřebuješ. Funkce .live() existuje převážně jen kvůli kodérům, kteří si myslí, že by selektory v jQuery měly fungovat stejně živě jako v CSS, což je neefektivní nesmysl.
|
||
Legáček Profil |
#4 · Zasláno: 29. 8. 2012, 23:09:49
Chamurappi:
$('a[rel=lightbox]').live('click', function(){ $(this).lightBox(); }); $('a[rel=lightbox]').lightBox(); a vše funguje. Díky za pochopení funkce .live() .
|
||
Časová prodleva: 12 let
|
0