Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Rozw.] pokazywanie/ukrywanie akapitu - onclick
wujek_bogdan
post
Post #1





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 8.03.2008

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


Mam skrypt pokazujacy/ukrywajacy dany akapitchcialem pozbyc sie javascriptowych onclick wewnatrz tagow html <a href="#" onclick="Jakasfunckja"> i wszystko wrzucic do skryptu w, wywoluje wiec fukncje przy windows.onload


java script:
  1. <script type="text/javascript">
  2. window.onload = Laduj;
  3. function Laduj() {
  4. var filmy = document.getElementById('filmy');
  5. var linki = filmy.getElementsByTagName('a');
  6. for (i=0; i<linki.length; i++) {
  7. linki[i].onclick = PokazFilm;
  8. }
  9. }
  10.  
  11. function PokazFilm() {
  12. akapit = this.getElementsByTagName('p');
  13. span = this.getElementsByTagName('span');
  14. var view = akapit[0].style.display;
  15. if (view == "block") {akapit[0].style.display = "none"; span[0].innerHTML = "Pokaż"}
  16. if (view == "none") {akapit[0].style.display = "block"; span[0].innerHTML = "Schowaj"}
  17. }
  18.  
  19. </script>


HTML
  1. <div id="filmy">
  2.  <a href="#" class="none"><span>Pokaż: film 1</span><p style="display:none" class="film">Treść akapitu</p></a><p style="padding:0;margin:0"></p>
  3.  
  4.  <a href="#" class="none"><span>Pokaż: film 2</span><p style="display:none" class="film">Treść akapitu</p></a><p style="padding:0;margin:0"></p>
  5.  
  6.  <a href="#" class="none"><span>Pokaż: film 3</span><p style="display:none" class="film">Treść akapitu</p></a><p style="padding:0;margin:0"></p>
  7.  
  8. </div>


Skrypt działa, ale akapit <p> musi znajdować się między tagami <a></a>, poniewaz w funkcji PokazFilm(), odwoluje się do niego za pomocą this.getElementsByTagName('p'); 

Chciałbym, oddzielić linki od akapitów (w chwili obecnej html wygląda tak: <a><p></p></a>, a chę żeby wyglądał tak: <a></a><p></p>). Mogę zebrać linki oraz akapity w tablie za pomocą getElementsByTagName(), i odwoływać się do nich na podstawie indeksów tablicy... ale nie wiem jak dać znać funkcji PokazFilm(), który który apakit ma zostać wyświetlony.

Powyższe rozwiązanie działa dobrze jedynie w Operze, w innych przeglądarkach gdy ostyluje linki, dziwne rzeczy zaczynają się dziać z obramowaniami, itd... i ogolnie uważam takie rozwiązanie za mało eleganckie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) , chcę też uniknąc nadawania każdemu apapitowi oddzielnego ID.

a tak to wygląda w praktyce

Ten post edytował wujek_bogdan 20.05.2009, 16:38:05
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: 7.10.2025 - 09:10