Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][CSS][JavaScript] onclick problem, okno ala lightbox
dziadzlasu
post 2.03.2009, 16:30:48
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 2.03.2009

Ostrzeżenie: (0%)
-----


Czesc, wiec mam drobny problem... Probuje zrobic wlasne okno podobne do np LightBox, ale...

CSS:
Kod
   #ciemne {
    width:100%;
    height:100%;
    background-color:black;
    opacity:0.5;
    position:fixed;
    top:0;
    }
    
    .okno {
    display:table-cell;
    vertical-align:middle;
    }
    
    .okno .zawartoscokna {
    background-color:white;
    width:200px;
    margin: 0 auto;
    }


xHTML
Kod
<div id="ciemne" style="display:none" onclick="pokaz('ciemne')">
   <div class="okno">
    <div class="zawartoscokna">
     Tresc [formularz]
    </div>
   </div>
  </div>


JS
Kod
function pokaz(toid)
   {
   var show = document.getElementById(toid);
   var view = show.style.display;
   if (view == "block" || "table")
    {
    show.style.display = "none";
    }
   if (view == "none")
    {
    if(toid == "ciemne")
     {
     show.style.display = "table";
     }
    else
     {
     show.style.display = "block";
     }
    }
   }

Gdy klikam na zaciemnione tlo = id #ciemne cale przyciemnienie tlo i okno z informacjami (classs .zawartoscokna) znika - o to chodzi! dziala!
Ale gdy klikam na tresc okna czyli klase .zawartoscokna tez znika, a tego nie chce bo w tresci ma byc formularz.

Jak zrobic aby po kliknieciu klasy .zawartoscokna - nic nie znikalo? A po kliknieciu na id #ciemne znikalo wszystko?

Pozdrawiam Dziad z Lasu

Ten post edytował dziadzlasu 2.03.2009, 16:34:25
Go to the top of the page
+Quote Post
wookieb
post 2.03.2009, 16:34:14
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Dodac do .zawartoscokna zdarzenie onclick wywolujace nic nie robiaca funkcje. Albo zwracajaca false

Ten post edytował wookieb 2.03.2009, 16:34:47


--------------------
Go to the top of the page
+Quote Post
dziadzlasu
post 2.03.2009, 16:35:27
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 2.03.2009

Ostrzeżenie: (0%)
-----


Cytat(wookieb @ 2.03.2009, 16:34:14 ) *
Dodac do .zawartoscokna zdarzenie onclick wywolujace nic nie robiaca funkcje. Albo zwracajaca false


Juz tego probowalem, nie dziala, zawartosc nadal znika onclick sad.gif
Probowalem tez z z-index ale ni cholery :/

Ten post edytował dziadzlasu 2.03.2009, 16:36:50
Go to the top of the page
+Quote Post
erix
post 2.03.2009, 16:36:24
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Chyba chodzi o event.cancelBubble.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
dziadzlasu
post 2.03.2009, 16:47:33
Post #5





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 2.03.2009

Ostrzeżenie: (0%)
-----


Cytat(erix @ 2.03.2009, 16:36:24 ) *
Chyba chodzi o event.cancelBubble.

Nie duzo mi to mowi bo prawde mowiac w JS nie programuje biegle...
Go to the top of the page
+Quote Post
erix
post 2.03.2009, 16:58:15
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Mianowicie, chodzi o dziedziczenie zdarzeń - jeśli klikniesz na najmniejszą warstwę, to - z tego, co pamiętam - to zdarzenia są dziedziczone - onclick dla tej warstwy, dla warstwy ją zawierającej, itd.

Jeśli ustawisz tę flagę na true, będzie oki. Ale lepiej jest stosować stopPropagation - https://developer.mozilla.org/en/DOM/event.stopPropagation


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
dziadzlasu
post 2.03.2009, 17:00:41
Post #7





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 2.03.2009

Ostrzeżenie: (0%)
-----


Cytat(erix @ 2.03.2009, 16:58:15 ) *
Mianowicie, chodzi o dziedziczenie zdarzeń - jeśli klikniesz na najmniejszą warstwę, to - z tego, co pamiętam - to zdarzenia są dziedziczone - onclick dla tej warstwy, dla warstwy ją zawierającej, itd.

Jeśli ustawisz tę flagę na true, będzie oki. Ale lepiej jest stosować stopPropagation - https://developer.mozilla.org/en/DOM/event.stopPropagation


Dzieki, dziala - to jest to!
Kod
<div id="ciemne" style="display:none" onclick="pokaz('ciemne')">
<div class="okno">
  <div class="zawartoscokna" onclick="event.stopPropagation()">
   asd
  </div>
</div>
</div>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 20.07.2025 - 16:13