Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]Wywołanie skrypty przy kliknięciu w button, Akcja wykonywana jest dopiero przy drugim kliknięciu, dlaczego?
rozny
post
Post #1





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 14.01.2004
Skąd: Zielona Góra

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


Cześć, popełniłem sobie taki oto skrypt:

  1. function descriptionSwitcher(id, photo) {
  2.  
  3. var status = document.getElementById(id);
  4. var photos = document.getElementById(photo);
  5.  
  6. if (status.style.display == 'none') {
  7.  
  8. status.style.display = 'block';
  9. photos.style.display = 'block';
  10.  
  11. }
  12.  
  13. else {
  14.  
  15. status.style.display = 'none';
  16. photos.style.display = 'none';
  17.  
  18. }
  19.  
  20. }


Wywołuję go poprzez kliknięcie w button, np:

  1. <button onClick="descriptionSwitcher('room_comfort', 'photo_comfort');">Pokaż opis</button>


Generalnie skrypt działa, jednak żeby zadziałał za pierwszym razem muszę kliknąć button 2 razy. Potem działa już co kliknięcie. Dlaczego tak się dzieje?

Pozdrawiam!

Ten post edytował rozny 15.04.2014, 11:14:19
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Skrypt dziala za kazdym razem, tylko ze zapierwszym razem style.display ma inną wartosc niz ci sie wydaje przez co twoje IFy zle dzialają....
A wystarczylo zrobic:
alert(status.style.display);
....
Go to the top of the page
+Quote Post
rozny
post
Post #3





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 14.01.2004
Skąd: Zielona Góra

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


dzięki za odpowiedź Nospor. zrobiłem alert i wyświetla pusty ciąg. dodałem do bloków atrybut style bezpośrednio w htmlu. czy to oznacza, że w przypadku takiego skryptu nie ma znaczenia co ustawię w arkuszu stylu? pewnie w jQuery można to obejść...
Go to the top of the page
+Quote Post
mlawnik
post
Post #4





Grupa: Zarejestrowani
Postów: 455
Pomógł: 49
Dołączył: 12.04.2010

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


Jeżeli w jQuery da się obejść, to w czystym js na pewno też.
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




style.display odnosi się bezposrednio do stylu elementu a nie do arkusza css
Go to the top of the page
+Quote Post

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: 25.12.2025 - 09:24