Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js]powrót w onmouseout
Forum PHP.pl > Forum > Przedszkole
Adrian1207
Nie umiem javascript i chciałbym was zapytać o problem który trapi mnie cały dzień. Mianowicie chodzi o powrót do normalnego koloru w onmouseout. Oto fragmenty kodu:
  1. Funkcja:
  2.  
  3. <script type="text/javascript" language="JavaScript">
  4. function alternate(id){
  5. if(document.getElementsByTagName){
  6. var table = document.getElementById(id);
  7. var rows = table.getElementsByTagName("tr");
  8. for(i = 0; i < rows.length; i++){
  9. //manipulate rows
  10. if(i % 2 == 0){
  11. rows[i].className = "even";
  12. }else{
  13. rows[i].className = "odd";
  14. }
  15. }
  16. }
  17. }
  18.  
  19. Kawałek CSS:
  20.  
  21. .odd{background-color: #CCCCCC;}
  22. .even{background-color: #AAAAAA;}
  23.  
  24. Wykorzystanie:
  25.  
  26. <body onload="alternate('tabela')">


Jak pewnie większość wie funkcja ta ustawia 2 kolory na przemian, i tu zaczynają się schody, chodzi o to, że teraz kiedy robię coś takiego:

  1. <tr onmouseover="style.backgroundColor='#DDDDDD'" onmouseout="style.backgroundColor='#CCCCCC'">


to po najechaniu myszką wiersz tabeli zmienia kolor na #DDDDDD ale kiedy zjeżdżam kolor ustawia się na #CCCCCC no i po przejechaniu nad całą tabelą nie ma już 2 kolorów na przemian tylko wszystko w jednym kolorze(#CCCCCC). I moje pytanie brzmi co zrobić żeby wiersz po podświetleniu nie zmieniał się w określony kolor tylko w taki jaki miał wcześniej i żeby nadal były 2 kolory na przemian? Nie wiem czy zrozumiecie o co mi chodzi, jeżeli nie, to proszę pisać, spróbuję wytłumaczyć lepiej albo dać przykład.
Proszę o proste odpowiedzi albo całościowe kody bo nie umiem javascript jednak niestety czasami użycie go jest koniecznościąsad.gif
vokiel
A czy nie lepiej byłoby przy tworzeniu tej tabeli od razu ustawić do jakiego koloru ma powracać?
Stworzyć tabelę

dla
  1. if(i % 2 == 0)
  2. {
  3. //wyświetlić:
  4. // <tr onmouseover="bgColor='#DDDDDD'" onmouseout="bgColor='#CCCCCC'" bgcolor="#CCCCCC">
  5. }
  6. else
  7. {
  8. //wyświetlić:
  9. //<tr onmouseover="bgColor='#CCCCFF'" onmouseout="bgColor='#AAAAAA'" bgcolor="#AAAAAA">
  10. }


może tak będzie prościej?
Adrian1207
Nie wiem, ktoś powiedział mi jak inaczej to zrobić i działa, a jak coś działa to się tego nie zmienia:) ale dzięki za zainteresowanie;)
-Jacek-
hej Adrian1207 mam taki sam problem mógł bys napisac jak zmieniles ten skrypt z wierszami na przemnian aby po najechaniu wiersz sie podswietlal ale potem wraca do swojego pierwotnego koloru (czyli spowrotem byly naprzemiennie pokolorowane)?
remik09
vokiel podal rozwiazanie, a jak nie dziala to podaj kod
Adrian1207
Widzę, że ktoś wrócił do tematu, więc postaram się pomóc. Myślę, że jeżeli podam kod pliku, w którym to zastosowałem nie powinno być problemu z dostosowaniem potrzebnych części kodu do własnych potrzeb.

Tak więc:
  1. <script type="text/javascript" language="JavaScript">
  2. function alternate(id){
  3.  if(document.getElementsByTagName){
  4.  var table = document.getElementById(id);
  5.  var rows = table.getElementsByTagName("tr");
  6.  for(i = 0; i < rows.length; i++){
  7.  if(i % 2 == 0){
  8.  rows[i].className = "even";
  9.  }else{
  10.  rows[i].className = "odd";
  11.  }
  12.  }
  13.  }
  14. }
  15. function powroc(id){
  16. id.className = "move";
  17. }
  18. </script>
  19. <style>
  20. .odd{background-color: #CCCCCC;}
  21. .even{background-color: #AAAAAA;}
  22. .move {background-color: #FFFFFF;}
  23. </style>
  24. <?
  25. require("config.php");
  26. $dbLink = @mysql_connect($dbasehost,$dbaseuser, $dbasepassword);
  27. mysql_select_db($dbase );
  28. echo "<center>\n";
  29. echo "<table width=\"638\">\n";
  30. echo " <tbody>\n";
  31. echo " <tr>\n";
  32. echo " <td vAlign=\"center\" align=\"middle\" width=\"80\">\n";
  33. echo " <p align=\"center\"><font face=\"Arial\" size=\"2\"><b>Szczegóły</b></font></p>\n";
  34. echo " </td>\n";
  35. echo " <td align=\"middle\" width=\"133\">\n";
  36. echo " <p align=\"center\"><b><font face=\"Arial\" size=\"2\">Login</font></b></p>\n";
  37. echo " </td>\n";
  38. echo " <td align=\"middle\" width=\"167\"><b><font face=\"Arial\" size=\"2\">Tytuł</font></b></td>\n";
  39. echo " <td align=\"middle\" width=\"202\"><b><font face=\"Arial\" size=\"2\">Krótki opis</font></b></td>\n";
  40. echo " <td align=\"middle\" width=\"98\"><b><font face=\"Arial\" size=\"2\">Data dodania</font></b></td>\n";
  41. echo " </tr>\n";
  42. echo " </center>\n";
  43. echo "</table>";
  44. echo "<body onload=\"alternate('tabela')\">\n";
  45. echo "<table id=\"tabela\" width=\"638\" bgColor=\"#999999\" cellpadding=\"0\" cellspacing=\"0\" align=\"left\">";
  46. $dbLink = @mysql_connect($dbasehost,$dbaseuser, $dbasepassword);
  47. mysql_select_db($dbase );
  48. include('Pager.class.php');
  49. $sql = 'select count(*) from jobs2';
  50.  $result = mysql_query($sql);
  51.  $row = mysql_fetch_array($result);
  52.  $recordsCount = $row[0];//pobranie liczby rekordów
  53.  $pager = new Pager('wykgraf');
  54.  $pager->SetTotalRecords($recordsCount);//ustawienie liczby rekordów
  55.  $pager->SetRecordsPerPage(15);
  56.  $pager->SetPagesPerNav(1);
  57.  //wygenerowanie pagera i zapamietanie go w zmiennej w celu
  58.  //pozniejszego wyswietlenia
  59.  $renderPager = $pager->Render();
  60.  $start = $pager->GetIndexRecordStart();//pobranie indexu rekordu początkowego
  61.  $end = $pager->GetIndexRecordEnd();//pobranie indexu rekordu koncowego
  62.  //zapytanie z uwzglenieniem stronicowania
  63.  $sql = 'select * FROM jobs2 ORDER BY jobs_id DESC LIMIT '.$start.','.($end - $start + 1);
  64. $result = mysql_query ($sql,$dbLink) or die( "problem loading data");
  65. While ($row = mysql_Fetch_array($result))
  66. {
  67. $currentjobid=$row['jobs_id'];
  68. $title=$row['title'];
  69. $company=substr($row['company'],0,40);
  70. $location=substr($row['location'],0,50);
  71. $description=$row['description'];
  72. $contact=$row['contact'];
  73. $email=$row['email'];
  74. $url=$row['url'];
  75. $publishdate=$row['publishdate'];
  76. stripslashes($description);
  77. echo "<tr onmousemove=\"powroc(this)\" onmouseout=\"alternate('tabela')\">";
  78. echo("<td vAlign=\"center\" align=\"middle\" width=\"86\" height=\"30\"><p align=\"center\"><font face=\"Arial\" size=\"1\"><a href=\"jobposter/viewjob2.php?currentjobid=$currentjobid\">Pokaż</a></font></p></td>");
  79. echo("<td align=\"middle\" width=\"133\" height=\"50\"><p align=\"center\"><font face=\"Arial\" size=\"2\">&nbsp;$title</font></p></td>");
  80. echo("<td align=\"middle\" width=\"167\" height=\"50\"><font face=\"Arial\" size=\"2\">&nbsp;$company</font></td>");
  81. echo("<td align=\"middle\" width=\"202\" height=\"50\"><font face=\"Arial\" size=\"2\">&nbsp;$location</font></td>");
  82. echo("<td align=\"middle\" width=\"98\" height=\"50\"><font face=\"Arial\" size=\"1\">&nbsp;$publishdate</font></td>");
  83. echo('</tr>');
  84. }
  85. echo('</table>');
  86.  echo $renderPager; //wyswietlenie pager'a
  87. ?>


W kodzie z tego co widzę był zastosowany pager autorstwa bodajże nospor'a, myślę że kto będzie potrzebował usunie te części.
A tak w ogóle to wielkie dzięki autorowi pagera, używam go do tej pory chyba w każdym projekcie smile.gif

Jakby coś w kodzie było nie tak, to piszcie, bo ja tego nie pamiętam, wyciągnąłem plik, który z tego co pamiętam powinien mieć już poprawną wersję, jeżeli nie to dajcie znać, poprawię.

Pozdrawiam
-Jacek-
Dzieki za powtórne zainteresowanie tematem
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.