Autor | Zpráva | ||
---|---|---|---|
Tonny Profil * |
#1 · Zasláno: 8. 9. 2013, 13:35:14
Ahoj,
mám div a potřeboval bych zavolat funkci (napřiklad nastavení display: na none) ve chvíli, kdy uživatel klikne mimo tento div. šlo by to řešit nějak bez pomoci jQuery? Neexistuje nějaká událost, něco jako onClickOut :D nebo tak něco? Na googlu jsem nic podobného nenašel. Díky moc za rady ;) |
||
Joker Profil |
#2 · Zasláno: 8. 9. 2013, 13:51:40
Tonny:
U inputů to jde, tam jsou události onfocus a onblur, ale u <div>u se myslím nepočítá se zaměřením prvku a opuštěním prvku. Takže asi leda odchytávat událost onclick na celé stránce a rozhodnout se podle toho, který prvek tu událost vyvolal. Případně tady je řešení spočívající v tom, že klik kamkoliv na stránku provede akci jako klik mimo prvek a na klik na prvek je pověšená funkce, která tu událost kliknutí pohltí (zastaví šíření události DOMem). |
||
nemeja Profil |
<!doctype html> <title>Klikací pozadí</title> <style type="text/css"> a.klikaci{ display: block; width: 100%; height: 100%; position: fixed; z-index: 1; background: black; } div#neklikat{ width: 50%; height: 50%; position: fixed; top: 25%; left: 25%; z-index: 2; background: white; } </style> <!-- void(0) tam musí být, jinak se stránka přesměruje --> <a href="javascript:document.getElementById('neklikat').style.background='red';void(0);" class="klikaci" title="Nastavení pozadí na červeno"></a> <div id="neklikat"> Lorem Ipsum </div> |
||
Chamurappi Profil |
#4 · Zasláno: 8. 9. 2013, 17:10:29
Reaguji na Jokera:
„U inputů to jde, tam jsou události onfocus a onblur, ale u <div>u se myslím nepočítá se zaměřením prvku a opuštěním prvku.“ Pokud má nastavený tabindex , tak ano. Výhoda onblur u je, že se vyvolá i v případě, kdy člověk klikne úplně mimo prohlížeč.
|
||
nemeja Profil |
Chamurappi:
„Výhoda onblur u je, že se vyvolá i v případě, kdy člověk klikne úplně mimo prohlížeč.“
V tomhle případě spíš nevýhoda ne? Nechtěl bych, aby se mi zavřela právě prohlížená galerie(A podle dotazu soudím, že se jedná o něco ve stylu lightboxu), pokud bych překliknul třeba na skype. |
||
_es Profil |
#6 · Zasláno: 8. 9. 2013, 19:18:47
Chamurappi:
„Výhoda onblur u je, že se vyvolá i v případě, kdy člověk klikne úplně mimo prohlížeč.“
Asi to nebude celkom zaručené správanie vo všetkých prehliadačoch. |
||
1Pupik1989 Profil |
#7 · Zasláno: 8. 9. 2013, 19:32:58
Já si v js vyberu element. poté pověsím událost na body. Pak už jen porovnávám target s vybraným elementem.
|
||
Časová prodleva: 5 dní
|
|||
Chamurappi Profil |
#8 · Zasláno: 13. 9. 2013, 11:35:26
Reaguji na nemeju:
„podle dotazu soudím, že se jedná o něco ve stylu lightboxu“ Já jsem si představil nějakou rozklikávací věc, třeba kalendář nebo imitaci <select> u. Kdyby dělal lightbox s překrývající průsvitnou vrstvou, patrně by ho napadlo chytat kliknutí na tu vrstvu.
Reaguji na _es: Moc důkladně jsem to nezkoumal. Znáš nějaký prohlížeč, kde to neplatí? Živá ukázka. |
||
shaggy Profil |
#9 · Zasláno: 13. 9. 2013, 11:48:07
Chamurappi:
„Znáš nějaký prohlížeč, kde to neplatí?“ Napr. v Opera 12.11 to tak nefunguje. A napr. v najnovšom Firefoxe som klikol zmenšil okno, klikol na inú aplikáciu v pozadí a tiež to nestratilo focus (ale v iných prípadoch to fungovalo). |
||
_es Profil |
Chamurappi:
Vo Firefoxe to ani pri prepínaní medzi „kartami“ nejako nefunguje. |
||
Časová prodleva: 11 let
|
0