Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript] jQuery i "warstwy" przy kliknięciu
-lukasamd-
post
Post #1





Goście







Witam,
mam 3 warstwy-divy:
- container
- effect (dla efektów, zaciemniania itp, poza tym stanowi niejako "kontener" dla komunikatów)
- newsletter (tu przedstawiony div-komunikat)

No i taki kod:

  1.  
  2. $("a.newsletter").toggle(function()
  3. {
  4. $("#container").animate({
  5. opacity: 0.3
  6. }, 750 );
  7. $("#effect").fadeIn("medium");
  8.  
  9. $("#effect").live('click', function()
  10. {
  11. $("#effect").fadeOut("medium");
  12. $("#container").animate({
  13. opacity: 1.0
  14. }, 750 );
  15. });
  16. },function()
  17. {
  18. $("#effect").fadeOut("medium");
  19. $("#container").animate({
  20. opacity: 1.0
  21. }, 750 );
  22. });



Po kliknięciu wszystko jest ok, strona przyciemniona, pokazuje się okienko.
Gdy klikam gdziekolwiek, zgodnie z założeniami wszystko "wraca do normy". Niestety, również kliknięcie na coś w div#newsletter powoduje taką akcję - zupełnie jakby wyższy priorytet miał div#effect (w sumie logiczne, jest wyżej w DOM).

Jak zrobić, aby reagowało na klik tylko poza div#newsletter, a jego zostawiło w spokoju?
Poza tym, jak widać, powtarza się kod dla toogle i dla tego kliknięcia gdziekolwiek. Da się to jakoś sensownie zrobić "w imię zasady" DRY? (IMG:style_emoticons/default/smile.gif)

Myślałem nawet o zaprzęgnięciu jQuery UI, ale taki kombajn nie jest mi potrzebny do 1 komunikatu na stronie, a poza tym lepiej jak człowiek napisze i sam się czegoś nauczy (IMG:style_emoticons/default/smile.gif)

Ten post edytował lukasamd 5.08.2010, 11:55:47
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 23.08.2025 - 21:02