Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript] Wykonanie funkcji metodą onClick, Wykonanie funkcji z innej funkcji
Upachi
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 27.12.2005

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


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.
Go to the top of the page
+Quote Post
cakper
post
Post #2





Grupa: Zarejestrowani
Postów: 10
Pomógł: 1
Dołączył: 10.10.2009
Skąd: Cieszyn / Gliwice

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


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)
Go to the top of the page
+Quote Post
Upachi
post
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 27.12.2005

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


Rzeczywiscie. Lekka przeróbka funkcji change rozwiązała problem.

Wielkie dzięki.
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: 23.08.2025 - 09:48