Autor | Zpráva | ||
---|---|---|---|
whysper93 Profil |
Zdravím,
chtěl bych se zeptat, jestli je nějaká možnost přes jQuery (nebo klidně jen JS) zjistit/získat element, na který bylo kliknuto. Se selektory by to bylo jednoduché jenže potřebuji, aby to vrátilo jakýkoli kliknutý element. Prostě nemůžu použít selektor, jelikož nyní nevím, jaká třída/id/element to bude. Díky |
||
Chamurappi Profil |
#2 · Zasláno: 18. 1. 2012, 21:14:28
Reaguji na whyspera93:
Viz Navigace šipkami na klávesnici, akorát místo stisku klávesy budeš chytat onclick a místo testování tagName budeš dělat… cokoliv chceš dělat.
|
||
whysper93 Profil |
#3 · Zasláno: 18. 1. 2012, 21:17:55
Děkuji za odpověď. Už jsem to ale vyřešil. Tady je řešení, kdyby jej někdo potřeboval. Jinak můžete klidně toto vlákno smazat :)
$("body").live("click", function(event){ var element = $(event.target); }); |
||
Chamurappi Profil |
#4 · Zasláno: 18. 1. 2012, 21:31:33
Reaguji na whyspera93:
Proč live ?
|
||
whysper93 Profil |
#5 · Zasláno: 19. 1. 2012, 09:54:46
IMO kdyby byl element přidán pomocí jquery až po načtení stránky, tak .click by nemuselo vždy fungovat. Live je prostě spolehlivější.
|
||
Chamurappi Profil |
Reaguji na whyspera93:
„kdyby byl element přidán pomocí jquery až po načtení stránky“ Myslíš jako element <body> ? Pokud ne, tak to je nesmysl, nepochopils, jak JavaScript funguje.
|
||
whysper93 Profil |
#7 · Zasláno: 19. 1. 2012, 10:00:45
Aha máš pravdu. Vím jak js funguje. Jen většinou vím, na který element se bude klikat (je tam jiný selector). A body je to blbost - jen jsem prostě už automaticky napsal .live protože už používám jen to.
|
||
Chamurappi Profil |
#8 · Zasláno: 19. 1. 2012, 10:39:02
Reaguji na whyspera93:
„Vím jak js funguje.“ Pak také víš, že každý .live výkonnostně zatěžuje každou dílčí úpravu DOMu, protože se vždy musí vyhodnotit, zda neměla vliv na vybíranou množinu elementů.
„automaticky napsal .live protože už používám jen to“ Proč? |
||
Kacko Profil |
#9 · Zasláno: 19. 1. 2012, 13:27:45
Chamurappi:
Také používám .live, pokud generuju nové elementy javascriptem. Co je na tom špatného? |
||
Chamurappi Profil |
#10 · Zasláno: 19. 1. 2012, 13:32:46
Reaguji na Kacka:
Je zbytečné a neefektivní přehodnocovat všechny .live selektory při každé úpravě DOMu. Co je na tom dobrého?
|
||
Kacko Profil |
#11 · Zasláno: 19. 1. 2012, 13:38:36
Chamurappi:
Jednoduchost zápisu? |
||
_es Profil |
#12 · Zasláno: 19. 1. 2012, 13:42:09
Kacko:
„Jednoduchost zápisu?“ Myslíš, že to návštevník ocení pri zasekávajúcej sa stránke? |
||
Kacko Profil |
#13 · Zasláno: 19. 1. 2012, 13:48:56
_es:
Stránka se nijak nezasekává, to bych samozřejmě do produkční verze nepustil. Myslím, že pokud je to použito vhodně, tak s tím dnešní běžné PC nemá sebemenší problém. Navíc jQuery je přece celé o jednoduchosti zápisu na úkor výkonu. |
||
Chamurappi Profil |
#14 · Zasláno: 19. 1. 2012, 13:53:51
Reaguji na Kacka:
V čem je ten zápis jednodušší? „pokud je to použito vhodně“ To se pozná podle čeho? „tak s tím dnešní běžné PC nemá sebemenší problém“ Nebrouzdám jen s PC a na PC nemám otevřenou jen tvojí stránku, ale šedesát dalších. |
||
Kacko Profil |
#15 · Zasláno: 19. 1. 2012, 14:22:20
Chamurappi:
Aha, koukám, že jsem neinformovaný a používám to ze zvyku ze starších verzí jQuery. Předpokládám, že míříš k .on a .delegate? |
||
_es Profil |
#16 · Zasláno: 19. 1. 2012, 14:33:22
Kacko:
„Navíc jQuery je přece celé o jednoduchosti zápisu na úkor výkonu.“ To platí, len ten zápis vyrába zlý programátor. Pri správnom použití je ten pokles výkonu zanedbateľný či skoro nemerateľný. „Stránka se nijak nezasekává, to bych samozřejmě do produkční verze nepustil.“ To to overuješ na všetkých možných kombináciách prehliadačov a strojov ktoré existujú? |
||
Chamurappi Profil |
#17 · Zasláno: 19. 1. 2012, 14:34:57
Reaguji na Kacka:
Nemířím. Oproti čemu ti připadá .live jednodušší?
|
||
Kacko Profil |
#18 · Zasláno: 19. 1. 2012, 14:45:21
_es:
Výkonový pokles tam je, přestože zanedbatelý. U větších aplikací je dobře měřitelný, přesto nehraje roli. Stejně tak zatížení klientské stanice při .live je zanedbatelné. Neověřuju to já, ale testeři, kteří hlídají i toto. Chamurappi: Přijde mi z hlediska programátora jednodušší a rychlejší použít zápis s .live, než ten event přiřazovat k nově generovaným elementů jakkoliv jinak. Proto .live vznikl. |
||
_es Profil |
Kacko:
„Stejně tak zatížení klientské stanice při .live je zanedbatelné.“ Na hocijakej stránke a na hocijakom prehliadači a stroji? Pri zachytávaní udalosti pohybu myši na stránke s veľa elementmi a na nejakom staršom prehliadači takýmto spôsobom mám o tom pochybnosti. „Neověřuju to já, ale testeři“ A teda tí to už testujú na všetkých možných kombináciách prehliadačov a strojov ktoré existujú? „jednodušší a rychlejší použít zápis s .live, než ten event přiřazovat k nově generovaným elementů jakkoliv jinak“ Akokoľvek inak sa to dá aj jednoduchšie, stačí napríklad využiť prebublanie udalosti a veľa iných spôsobov. |
||
Kacko Profil |
#20 · Zasláno: 19. 1. 2012, 15:04:39
_es:
Realita je taková, že testeři to testují na nejpoužívanějších prohlížečích a na záměrně slabých strojích. To, že to 0,1% lídí bude zatěžovat neúměrně procesor je mě jakožto i celé firmě, jakožto i všem jiným firmám ve kterých jsem pracoval a pracuju úplně jedno. Dokonce i pár procent je číslo, které se neřeší. Nevidím důvod používat probublávání eventů, když se používá jednotně jQuery zápis a stačí napsat .live. |
||
_es Profil |
Kacko:
„Nevidím důvod používat probublávání eventů, když se používá jednotně jQuery zápis“ Ten „jQuery zápis“ je čo? JQuery je jedna dodefinovaná funkcia, neviem si predstaviť, čo by ten „jQuery zápis“ mal byť. To snáď nejde v jQuery využiť prebublanie udalosti? „pár procent je číslo, které se neřeší.“ Možno, no môže sa potom riešiť programátor, ktorý tých pár percent spôsobil. |
||
Kacko Profil |
#22 · Zasláno: 19. 1. 2012, 15:16:37
_es:
:-) |
||
Časová prodleva: 12 let
|
0