Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]Zaznaczanie wiersza tabeli
lubiemdziem
post
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 13.06.2008

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


Witam, jestem kompletnym laikiem w JS. Znalazłem skrypt na zaznaczanie wiersza, tylko, że nie działa tak jak chcę. Chcę zaznaczać wiele wierszy na raz (spoko, to łatwe. Wywalić funkcję clearSelection), ale jak odznaczyć wiersz po ponownym kliknięciu?


Tu kod:

  1.  
  2. <style type="text/css">
  3. .highlight {
  4. background:red;
  5. }
  6.  
  7. <script type="text/javascript">
  8. var selectedClass='highlight';
  9. var selectedRow=null;
  10. function selectRow(row){
  11. clearSelection();
  12. row.className += " "+selectedClass;
  13. selectedRow=row;
  14.  
  15. }
  16. function clearSelection(){
  17. var reg = new RegExp('(\\s|^)'+selectedClass+'(\\s|$)');
  18. if(selectedRow!=null) selectedRow.className=selectedRow.className.replace(reg,' ');
  19. }
  20.  
  21. <title>Table</title>
  22.  
  23. </head>
  24.  
  25. <tr onClick="selectRow(this)"><td>1</td><td>2</td></tr>
  26. <tr onClick="selectRow(this)"><td>3</td><td>4</td></tr>
  27. <tr onClick="selectRow(this)"><td>5</td><td>5</td></tr>
  28. <tr onClick="selectRow(this)"><td>6</td><td>7</td></tr>
  29.  
  30. </body>
  31. </html>



Pozdrawiam.
Go to the top of the page
+Quote Post
kamil4u
post
Post #2





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Chcesz gotowca czy trochę pomyśleć i sam to zrobić? - pytam, bo nie wiem czy mam opisywać wszystko krok po kroku czy po prostu dać Ci gotowy kod.
O jeszcze takie pytanie: w całości rozumiesz powyższy kod?

Praktycznie wszystko masz napisane. Wystarczy trochę przekopiować/pozamieniać i będzie gitara smile.gif


--------------------
Go to the top of the page
+Quote Post
lubiemdziem
post
Post #3





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 13.06.2008

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


Szczerze to nie rozumiem niczego.

Wolę gotowy kod, bo i tak JS to dla mnie czarna magia. Dziękuję slicznie z góry, dam punkt pomógł biggrin.gif
Go to the top of the page
+Quote Post
kamil4u
post
Post #4





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


W sumie lepiej, bo zaoszczędziłeś mi czasu na wyjaśnianie wszystkiego. Chociaż ostatnio mało kto na forum chce się czegoś nauczyć - z reguły chcą gotowca. No nic.

  1. <html>
  2. <head>
  3.  
  4. <style type="text/css">
  5. .highlight {
  6. background:red;
  7. }
  8. </style>
  9.  
  10. <script type="text/javascript">
  11. var selectedClass='highlight';
  12. var selectedRow=null;
  13.  
  14. function selectRow(row){
  15. if( row.className.indexOf(selectedClass) != -1 )
  16. clearSelection( row );
  17. else{
  18. clearSelection( selectedRow);
  19.  
  20. row.className += " "+selectedClass;
  21. selectedRow=row;
  22. }
  23. }
  24. function clearSelection( row ){
  25. var reg = new RegExp('(\\s|^)'+selectedClass+'(\\s|$)');
  26. if(selectedRow!=null) row.className=row.className.replace(reg,' ');
  27. }
  28. </script>
  29.  
  30. <title>Table</title>
  31.  
  32. </head>
  33. <body>
  34.  
  35. <tr onClick="selectRow(this)"><td>1</td><td>2</td></tr>
  36. <tr onClick="selectRow(this)"><td>3</td><td>4</td></tr>
  37. <tr onClick="selectRow(this)"><td>5</td><td>5</td></tr>
  38. <tr onClick="selectRow(this)"><td>6</td><td>7</td></tr>
  39. </table>
  40.  
  41. </body>
  42. </html>


--------------------
Go to the top of the page
+Quote Post
lubiemdziem
post
Post #5





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 13.06.2008

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


Dzięki mistrzu smile.gif


Co do uczenia się zasady działania skryptów nie mam zwyczajnie czasu. Wiem, smutne to, ale czasem trzeba i tak
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 00:28