[jQuery] Kliknięcie myszy po za chcianym obszarem |
[jQuery] Kliknięcie myszy po za chcianym obszarem |
6.08.2011, 12:57:09
Post
#1
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 9 Dołączył: 20.09.2010 Skąd: Kraków Ostrzeżenie: (0%) |
Witam.
Mianowicie nie mam zielonego pojęcia jak zrobić efekt zamknięcia jakiegoś okna gdy użytkownik kliknie po za obszarem tego okna. Jak na niektórych stronach jest otwieranie galerii i gdy klikniemy po za obszar obrazka, galeria zamyka się. Dziękuję i pozdrawiam. |
|
|
6.08.2011, 13:04:27
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) |
Na tych stronach jest prawdopodobnie warstwa(ta czarna) i to ona jest "klikalna".
Co do problemu to nadajesz zdarzenie na całą stronę i gdy klikany jest obszar, który ma nie zamykać strony, wtedy zatrzymujesz akcję: stopPropagation Ten post edytował kamil4u 6.08.2011, 13:05:05 -------------------- |
|
|
6.08.2011, 14:28:58
Post
#3
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 9 Dołączył: 20.09.2010 Skąd: Kraków Ostrzeżenie: (0%) |
Ale jakiś kod?
Myślałem o tym ale nie wiem jak to zrobić, sprawdzić warunkiem czy zostało kliknięte pole które się otworzyło i jeżeli tak to nic nie rób a jeśli nie to zamknij? Nie wiem jak to ubrać w kod... Albo jaka jest funkcja w jQuery która pobiera nazwę elementu klikniętego. Znalazłem jedynie coś takiego: target ale nie wiem jak to połączyć z moim problemem.... |
|
|
6.08.2011, 14:35:36
Post
#4
|
|
Grupa: Zarejestrowani Postów: 254 Pomógł: 39 Dołączył: 6.12.2010 Skąd: localhost Ostrzeżenie: (0%) |
Możesz sobie jakoś dorobić sprawdzenie czy jest pokazany ten DIV czy nie, ale ja niestety nie wiem jak Ten post edytował drozdii07 6.08.2011, 14:36:04 -------------------- Wspieram akcję "jQuery i AJAX to nie język programowania"
|
|
|
6.08.2011, 19:26:07
Post
#5
|
|
Grupa: Zarejestrowani Postów: 561 Pomógł: 72 Dołączył: 15.11.2006 Ostrzeżenie: (0%) |
Zdecydowanie lepiej jest opierać się na współrzędnych kliknięcia myszką niż na target. Wyobraź sobie że w swoim divie (który chcesz zamknąć gdy target podczas kliknięcia nie wskazuje na niego) masz jakieś elementy html, np. <span>cośtam</span> jeśli klikniesz w taki element to target będzie wskazywał na tego spana i mimo że jest on w środku twojego diva to zostanie on zamknięty. Lepiej jest zatem sprawdzić czy współrzędne myszki podczas kliknięcia znajdują się wewnątrz tego diva, jeśli nie to dopiero wtedy div zostaje zamknięty.
-------------------- Nawet świnka może wejść na drzewo kiedy jest chwalona :)
|
|
|
7.08.2011, 11:40:50
Post
#6
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 9 Dołączył: 20.09.2010 Skąd: Kraków Ostrzeżenie: (0%) |
Czyli nie ma żadnego sprawdzonego sposobu na tą rzecz?
Postaram się coś wymyślić i napiszę tutaj cały kod. |
|
|
7.08.2011, 15:43:12
Post
#7
|
|
Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) |
Jest sposób - sprawdzony - ten co napisałem. Z tymi współrzędnymi myszki( by ~krowal ) to bym się nie zgodził...
Masz gotowca: http://jsfiddle.net/t28qj/ Kod document.onclick = function(){ alert('kliknieto'); }; document.getElementById('box').onclick = function(e){ e.stopPropagation(); } Nie działa pod IE, ale jak poczytasz o zdarzeniach to nie powinieneś mieć problemu... z resztą jQuery naprawiłoby by Ci błąd samo Czytaj: http://webhelp.pl/artykuly/obsluga-zdarzen-w-przegladarkach/ - ~krowal Ty też, bo masz rację, ale to działa w trochę innym wypadku Ten post edytował kamil4u 7.08.2011, 15:45:20 -------------------- |
|
|
7.08.2011, 16:05:57
Post
#8
|
|
Grupa: Zarejestrowani Postów: 561 Pomógł: 72 Dołączył: 15.11.2006 Ostrzeżenie: (0%) |
Z tymi współrzędnymi myszki( by ~krowal ) to bym się nie zgodził... Zwróć uwagę, że mi chodziło o to, że target się nie sprawdzi, rozwiązanie które podałeś jest ok Ten post edytował krowal 7.08.2011, 16:06:19 -------------------- Nawet świnka może wejść na drzewo kiedy jest chwalona :)
|
|
|
7.08.2011, 16:13:27
Post
#9
|
|
Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) |
A rzeczywiście... - nie widziałem wcześniej posta z tym target i myślałem, że to Tobie się coś pomieszało(a nie mi ) i odnosisz się do mojego wcześniejszego postu. Sorry
-------------------- |
|
|
7.08.2011, 22:35:21
Post
#10
|
|
Grupa: Zarejestrowani Postów: 749 Pomógł: 37 Dołączył: 3.10.2006 Ostrzeżenie: (0%) |
Kod $("#twojdiv").click(function(){ return false; }); $(body).click(function()){ // Tutaj funkcja do znikania tego diva;) } gdzie "twojdiv" to id diva, którego kliknięcie nie powoduje żadnej akcji -------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 04:01 |