Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Wykonanie funkcji metodą onClick
Forum PHP.pl > Forum > Przedszkole
Upachi
Witam.

Przejdę od razu do rzeczy. Napisałem sobie prosty skrypt który ma stworzyć paginację w mojej galerii: http://www.knofel.kione.pl/paginacja/pagination.php

Wszystko wygląda tak jak chcę tylko nie potrafię zmusić skryptu żeby dodatkowo po kliknięciu którejś ze stron wywołał inną funkcję (która w przyszłości ma wygenerować wybraną stronę galerię)

Tak wygląda kod:
Strona pagination.php
  1. <HTML>
  2. <HEAD>
  3. <script language="JavaScript" type="text/javascript" src="scripts.js"></script>
  4. </HEAD>
  5. <BODY bgcolor="#000000">
  6.  
  7. <center><br/><div id="pagination" style="color:#8D8769; font-weight:bold; font-family: Tahoma">
  8.  
  9. <?php
  10. $current_page = 6;
  11. $all_pictures = 22;
  12. $pictures_per_page = 2;
  13. $max_font_size = 24;
  14. $min_font_size = 11;
  15.  
  16. if( $all_pictures > $pictures_per_page )
  17. {
  18. $all_pages = round($all_pictures / $pictures_per_page);
  19.  
  20. for($x=1; $x<=$all_pages; $x++)
  21. {
  22. $current_page_mark = "";
  23.  
  24. if( $x < $current_page )
  25. {
  26. $current_font_size = ($current_page - $x)*3;
  27. $current_font_size = $max_font_size-$current_font_size;
  28. }
  29. if( $x > $current_page )
  30. {
  31. $current_font_size = ($x - $current_page)*3;
  32. $current_font_size = $max_font_size-$current_font_size;
  33. }
  34. if( $x == $current_page )
  35. {
  36. $current_font_size = $max_font_size;
  37. $current_page_mark = "color: #DBBB0D;";
  38. }
  39.  
  40. $current_font_size = ( $current_font_size < $min_font_size ) ? $min_font_size : $current_font_size;
  41.  
  42. echo '<span onClick="generate_thumbinals('.$x.');" onMouseOver="change('.$x.','.$all_pages.');" style="'.$current_page_mark.' font-size: '.$current_font_size.'px;">[ '.$x.' ]</span> ';
  43. }
  44. }
  45. ?>
  46.  
  47. </div></center>
  48.  
  49. </BODY>

Natomiast plik gdzie umieszczone są skrypty java script:
  1. function generate_thumbinals(page) {
  2. alert('Strona: '+page);
  3. }
  4.  
  5. function change(page,all_pages) {
  6.  
  7. var pagination = "";
  8. var x = 1;
  9. var max_size = 24;
  10. var min_size = 11;
  11.  
  12. for(x<1; x<=all_pages; x++)
  13. {
  14. current_page_mark = "";
  15.  
  16. if( x < page )
  17. {
  18. current_size = (page - x)*3;
  19. current_size = max_size-current_size;
  20. }
  21. if( x > page )
  22. {
  23. current_size = (x - page)*3;
  24. current_size = max_size-current_size;
  25. }
  26. if( x == page )
  27. {
  28. current_size = max_size;
  29. var current_page_mark = "color: #DBBB0D;";
  30. }
  31.  
  32. if( current_size < min_size )
  33. {
  34. current_size = min_size;
  35. }
  36.  
  37. pagination += '<span onClick="generate_thumbinals('+x+');" onMouseOver="change('+x+','+all_pages+');" style="'+current_page_mark+' font-size: '+current_size+'px;">[ '+x+' ]</span> ';
  38. }
  39.  
  40. document.getElementById('pagination').innerHTML = pagination;
  41.  
  42. }


Paginacja generowana jest dobrze. Efekt zmiany wielkści czcionki też tak jak chcę ale po kliknięciu nic się nie dzieje. Będę wdzięczny za wszelkie wskazówi.

Pozdrawiam.
cakper
Coś nie teges jest w funkcją wywoływaną na onMouseOver, zauważ że po usunięciu jej wywołania onClick działa dobrze
zobacz czy w kodzie change nie ma czegoś co by ogłupiało silnik JSa i zamulało go (przez co nie jest wywoływany onClick)
Upachi
Rzeczywiscie. Lekka przeróbka funkcji change rozwiązała problem.

Wielkie dzięki.
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.