fiszol
20.06.2007, 03:58:11
<script type="text/javascript"> <!--
function blink(id)
{
document.getElementById(id).style.display = (document.getElementById(id).style.display == "none") ? "block" : "none";
}
-->
<a href="java script:blink('tha-form')">pokaz / ukryj
</a> <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
20.06.2007, 05:40:22
Aby zrobic cos na wielu elmentach mozna zrobic tak:
var elements = document.getElementsByTagName('div');
for (var i=0;i<elements.length;i++)
{
if(elements[i].getAttribute('rel')=='formularz'){
elements[i].style.display = (elements[i].style.display == "none") ? "block" : "none";
}
}
<div rel='formularz'>pierwszy
</div> <div rel='formularz'> drugi
</div>
fiszol
20.06.2007, 08:30:56
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...
<script type="text/javascript"> <!--
function blink()
{
var elements = document.getElementsByTagName('div');
for (var i=0;i<elements.length;i++)
{
if(elements[i].getAttribute('rel')=='formularz')
{
elements[i].style.display = (elements[i].style.display == "none") ? "block" : "none";
}
}
}
</script>
<a href="#" onclick="java script:blink();">pierwszy</a>
<div rel='formularz'>pierwszy</div>
<a href="#" onclick="java script:blink();">drugi</a>
<div rel='formularz'> drugi</div>
revyag
20.06.2007, 08:51:07
Nadaj każdemu divowi id, umieść w nich formularze i przekazuj to id do funkcji i ustawiaj display.
<a href="#" onclick="java script:blink('form1');">pierwszy
</a>
fiszol
20.06.2007, 09:00:26
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
20.06.2007, 09:11:52
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
20.06.2007, 09:21:09
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
20.06.2007, 09:25:58
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

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
20.06.2007, 14:32:22
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
20.06.2007, 15:21:22
Cytat
onlick zamiast onclick, 3 godziny....
hehe, wlasnie przed chwilą po minucie na twej stronie tez to zauwazylem
fiszol
21.06.2007, 11:09:39
zawsze jak zarwę noc to głupoty na klawie wklepuje

a client-side głupoty mają mała wadę - nic ich nie raportuje
gekon
25.06.2007, 21:13:29
Cytat
a client-side głupoty mają mała wadę - nic ich nie raportuje
Firebug pod Firefoxa.
fiszol
26.06.2007, 03:45:47
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.