Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: widoczny/niewidoczny div
Forum PHP.pl > Forum > Po stronie przeglądarki
fiszol
  1. <script type="text/javascript">
  2. <!--
  3. function blink(id)
  4. {
  5. document.getElementById(id).style.display = (document.getElementById(id).style.display == "none") ? "block" : "none";
  6. }
  7. -->
  8.  
  9. <a href="java script:blink('tha-form')">pokaz / ukryj</a>
  10. <div id="tha-form" style="display:none">troche jestem, troche mnie nie ma</div>


Wszystko by było super gdyby nie to że chcem w diva wsadzić formularz który będzie wyśiwetlanie kilka razy na stronie (dodaj komentarz do newsa), a jak wiadomo użyty id zawsze musi być unikalny, jak rozwiązać ten problem?
jarekh
Aby zrobic cos na wielu elmentach mozna zrobic tak:
  1. var elements = document.getElementsByTagName('div');
  2. for (var i=0;i<elements.length;i++)
  3. {
  4. if(elements[i].getAttribute('rel')=='formularz'){
  5. elements[i].style.display = (elements[i].style.display == "none") ? "block" : "none";
  6. }
  7. }
  8.  
  9. <div rel='formularz'>pierwszy</div>
  10. <div rel='formularz'> drugi</div>
fiszol
wsadzam to w funkcje i zwija/rozwija wyszstkie divy o podanym w funkcji relu za jednym kliknięciem, co raczej jest nie korzystne bo w moencie gdy ktoś będzie chciał wyrazić opinię na temat newsa X otworzy przy okazji divy z formularzami do newsów Y i Z...

  1. <script type="text/javascript">
  2. <!--
  3. function blink()
  4. {
  5. var elements = document.getElementsByTagName('div');
  6. for (var i=0;i<elements.length;i++)
  7. {
  8. if(elements[i].getAttribute('rel')=='formularz')
  9. {
  10. elements[i].style.display = (elements[i].style.display == "none") ? "block" : "none";
  11. }
  12. }
  13. }
  14. </script>
  15. <a href="#" onclick="java script:blink();">pierwszy</a>
  16. <div rel='formularz'>pierwszy</div>
  17. <a href="#" onclick="java script:blink();">drugi</a>
  18. <div rel='formularz'> drugi</div>
revyag
Nadaj każdemu divowi id, umieść w nich formularze i przekazuj to id do funkcji i ustawiaj display.

  1. <a href="#" onclick="java script:blink('form1');">pierwszy</a>
  2. <div id="form1"></div>
fiszol
Myślałem o tym, ale przecież newsy bedą wyciągane z bazy danych w różnych ilościach, np 10 czy nawet 30, zależnie od preferencji użytkownika, wyszukiwania i takich tam

dorzucić jedną zmienną do pętli to nie problem, ale mam wątpliwości co do tego rozwiązania bo:
te ide nie będą zdefiniowane w stylu, wobec czego przypisywanie divom id które fizycznie nie istnieje nie będzie chyba specjalnie poprawne ( a może zadeklorwać id na zapas w stylu ?)

druga sprawa - id winny być przypisywane do elementów unikalnych, czy div z ukrytym forumularzem wyświetlonym x razy jest unikalny? samo nadanie unikalnego id nie uczynia diva unikalnym (racja ?) imho to jak wyciągnąć dwa papierochy z paczki, jednego oddać koledzie i twierdzić że oba są różne.
nospor
NIe bardzo wiem w czym widzisz problem.
Do każdego newsa smażysz tego diva z formem. Dla diva nadajesz id, np. jakisprzedrostek_idNewsa i juz masz uniklane ID niezależnie od liczby newsów. Jak ktoś chces skomentować dany news to pokazuje mu się div z formem dla tego newsa.
fiszol
Problem leży w tym że nie jestem pewien poprawności tego rozwiązania, wiem że jest wygodnie i prosto, przez każdy validator przejdzie również, ale jak to będzie wyglądać np w oczach jakiegoś guru od css ?

W każdym razie załóżmy że decyduje się na te id, definiować je "na zapas" w css?

@nospor or revyag, jak możesz, przenieś temat piętro wyżej bo w zasadzie nie rozważam już tutaj JS tylko poprawność takiego zastosowania divów
nospor
Cytat
W każdym razie załóżmy że decyduje się na te id, definiować je "na zapas" w css?
No teraz zglupialem. CZemu chesz definiować te ID w css? Poco ci to do szczęścia potrzebna? Wybacz, nie rozumiem smile.gif

Cytat
@nospor or revyag, jak możesz, przenieś temat piętro wyżej bo w zasadzie nie rozważam już tutaj JS tylko poprawność takiego zastosowania divów
done
fiszol
wpakowałem te id i teraz już głupieje:
http://gormenghast.pl/fg/

górny nav "blinkuje" jak trza (czerwony link asd pod logo), link "komentarze" już nie, mimo że wywołowany identycznie

jakieś pomysły?

//bez komentarza:
onlick zamiast onclick, 3 godziny....
nospor
Cytat
onlick zamiast onclick, 3 godziny....
hehe, wlasnie przed chwilą po minucie na twej stronie tez to zauwazylem winksmiley.jpg
fiszol
zawsze jak zarwę noc to głupoty na klawie wklepuje smile.gif a client-side głupoty mają mała wadę - nic ich nie raportuje
gekon
Cytat
a client-side głupoty mają mała wadę - nic ich nie raportuje


Firebug pod Firefoxa.
fiszol
mam, nie wychwycił tego
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.