Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> zmiana klasy wiersza, po kliknieciu w obrazek
AxZx
post
Post #1





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


witam

temat ukrywanie/pokazywania elementow byl juz poruszany, ale niestety ja nie umiem skorzystac z tego co znalazlem,


  1. <tr class="nad0">
  2. <td>1 <img src="jakis.jpg"></td>
  3. <td>wiersz 1</td>
  4. </tr>
  5. <tr class="ukryty nad1">
  6. <td>2</td>
  7. <td>wiersz 2</td>
  8. </tr>
  9. <tr class="ukryty nad1">
  10. <td>3</td>
  11. <td>wiersz 3</td>
  12. </tr>
  13. <tr class="ukryty nad1">
  14. <td>4</td>
  15. <td>wiersz 4</td>
  16. </tr>
  17. <tr class="nad0">
  18. <td>5</td>
  19. <td>wiersz 5</td>
  20. </tr>


<tr> z klasa ukryty jest niewidoczny, chcialbym aby po kliknieciu <img> wszystkie <tr> z klasa nad1 zmienily klase na widoczny nad1
ale gdy jest juz <tr class="widoczny nad1"> to zeby zmienilo sie spowrotem na <tr class="ukryty nad1">
i tak na przemian

da sie to jakos zrobic?
bede wdzieczny za pomoc
pozdrawiam
Go to the top of the page
+Quote Post
anopak
post
Post #2





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 26.10.2004
Skąd: Rybnik

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


zainteresuje się frameworkiem: Prototype

i robisz to mniej więcej tak (pisane z palca, nie gwarantuje, że działa)

Kod
function imgClick(){
  allTr=$('ID_TABELI').getElementsByTagName('tr');

  for(i=0;i<allTr.length;i++){
    if(Element.hasClassName(allTr[i],'nad1')){
      if(Element.hasClassName(allTr[i],'widoczny')||
          !Element.hasClassName(allTr[i],'ukryty')){
        Element.removeClassName(allTr[i],'widoczny');
        Element.addClassName(allTr[i],'ukryty');
      }
      else{
        Element.removeClassName(allTr[i],'ukryty');
        Element.addClassName(allTr[i],'widoczny');
      }
    }
  }
}


ale, jezeli chcesz poprostu zmieniać widoczność wszystkich elementów, które mają klasę nad1, to proponuję w ten sposób:

Kod
function imgOnClick(){
allNad=document.getElementsByClassName('nad1');
for(i=0;i<allNad.length;i++)
  Element.toggle(allNad[i]);
}


krótsze i czytelniejsze...
Go to the top of the page
+Quote Post
AxZx
post
Post #3





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


a moglbys pomoc mi rozwinac ten drugi sposob?
albo chociaz objasnic

wymyslilem ze wiersz bedzie mial taki atrybut class="ukryty nad1"
po kliknieciu obrazka ten wiersz zmienia atrybut na class="widoczny nad1"
po ponownym kliknieciu zmienia na class="ukryty nad1"

chyba ze jest jakis sposob zeby nie bylo tej pierwszej klasy ukryty/widoczny


EDIT
dziala (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Kod
function getElementsByClassName(class_name)
{
  var all_obj,ret_obj=new Array(),j=0,teststr;

  if(document.all)all_obj=document.all;
  else if(document.getElementsByTagName && !document.all)
    all_obj=document.getElementsByTagName("*");

  for(i=0;i<all_obj.length;i++)
  {
    if(all_obj[i].className.indexOf(class_name)!=-1)
    {
      teststr=","+all_obj[i].className.split(" ").join(",")+",";
      if(teststr.indexOf(","+class_name+",")!=-1)
      {
        ret_obj[j]=all_obj[i];
        j++;
      }
    }
  }
  return ret_obj;
}

function ShowHide(klasa) {
    
    obj = getElementsByClassName(klasa);
    
    for(i=0;i<obj.length;i++){
  if(obj[i].className == 'ukryty ' + klasa){
      obj[i].className = 'widoczny ' + klasa;
  }else{
      obj[i].className = 'ukryty ' + klasa;
  }
    }
    
    
}


EDIT
a teraz inny problem
chcialbym aby ten obrazek w ktory klikam zmienial sie po kliknieciu
da sie zmienic src obrazka w zdarzeniu onclick?

Ten post edytował AxZx 20.02.2006, 12:35:32
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 - 16:15