| 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 onbluru je, že se vyvolá i v případě, kdy člověk klikne úplně mimo prohlížeč.
|
||
| nemeja Profil |
Chamurappi:
„Výhoda onbluru 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 onbluru 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: 13 let
|
|||
0