jQuery on/off události rubrika: Programování: PHP

5 podhy
položil/-a 17.5.2012

Zdravím. Chtěl bych se vás zeptat jak byste vyřešili toto http://jsfiddle.net/KUYfQ/

Jde mi o to, že potřebuji odstranit událost jen ze specifického divu(např. označeného pomocí ID nebo třídy), ale potřebuji aby se události na prvky navěsily jako kdyby se to dělalo pomocí live(), protože tyto prvky budu načítat pomocí AJAXu.

Už si s tím nějakou dobu hraju a nejsem schopný se dopracovat nějakého řešení a mám takový pocit, že to ani řešení nebude mít a budu muset stáhnout na staré dobré live()/die(), které jsou ovšem označené už jako deprecated.

Díky za pomoc.

Komentáře

  • jachym.tousek : Odstranit událost ze specifického divu - chápu správně, že na tom divu ta událost nějakou dobu být musí a teprve později ji potřebuješ odstranit? Pokud ne, bude mnohem jednodušší tu událost tomu divu vůbec nenastavovat. 17.5.2012
odkaz
3 yad
odpověděl/-a 17.5.2012
 
upravil/-a 18.5.2012

Oprava (po prvom komentári):

Sorry za zmätok: http://jsfiddle.net/jrg2V/2/. Dávnejšie som to riešil tiež cez .live() a .die(), ale to je neefektívne. Namiesto toho odporúčam pri každom prijatí pripojiť obsluhy (handlere?).

Môže pri tom vzniknúť duplicita, ale to sa dá riešiť pomocou nejakej šikovnej funkcie a pod. Kreativite sa medze nekladú ;).

Originál:
Síce to nie je najkrajšie riešenie (http://jsfiddle.net/jrg2V/), ale plní to svoj účel. Dá sa to prepisovať aj zložitejšie (napr. generovanie funkcií, ale to je dosť veľká šleha na taký malý problém - rátam s tým, že sa to má vedieť prepínať).

Ak by som mohol, tak lepší popis by bodol (technickejšie detaily, nechápem ako to má fungovať - detailnejšie) :).

Komentáře

  • podhy : No jo, ale tohle řešení mi nebude fungovat na prvky, které načtu AJAXem a budou vygenerování až po vytvoření DOMu. Jde mi o to, že ve stránce budu mít youtube videa v v malém přehrávači jenže když je ten přehrávač moc malý tak se některá videa nepřehrají a čeho já chci docílit je, že když člověk najede myší na video (mouseenter) tak se video zvětší a po události mouseleave zase zmenší. Toto mám zatím hotové. Já potřebuji, ale aby když člověk video přehrává tak aby se video nezmenšilo (potřebuji tedy mouseleave odstranit nebo nějak zablokovat kdyby to šlo). 18.5.2012
  • yad : Sorry za zmätok, už som priložil riešenie. 18.5.2012
  • podhy : tohle byla věc, která mě taky napadla ale moc se mi nelíbila :-) co tak ale zjišťuju tak jiná možnost není....škoda no. Snad v další verzích jQuery :-) 18.5.2012

Pro zobrazení všech 3 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.