Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> jQuery DataTables - jak dostac index tr ?
Sadamowski
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 1
Dołączył: 4.07.2011

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


Wiatm,

Pytanie jest proste:
jak dostac index <tr> wygenerowany przez datatables.
Oczywiście odpowiedz jest prosta (każdy z Was powie):

  1. var aPos = oTable.fnGetPosition.parent(this);


to oczywiscie dziala wysmienicie jesli mamy zadeklarowane cos takiego: (oczywiscie zakladamy ze oTables jest juz zadeklarowane wczesniej jako $.dataTables();

  1. $('#PendingEmpl_table').on('click', 'tbody tr', function(){
  2.  
  3. var aPos = oTable.fnGetPosition(this);
  4. alert(aPos);
  5. }

itd

ale jesli chce dostac to samo ale klikajac na konkretny element w rzędzie tabeli np: <td> <a class='rem_tr'> Remove </a> </td> itd

to mam coś takiego

  1. $('#PendingEmpl_table').on('click', 'tbody tr .rem_tr', function(){
  2.  
  3. var aPos = oTable.fnGetPosition((IMG:style_emoticons/default/questionmark.gif) ?);
  4. alert(aPos);
  5. }



co wstawic w te znaki zapytania - this oczywiscie odpada. Kombinowalem z parentami i za cholere nic , POMOCY!!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
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%)
-----


Jesteś na 100% pewien, że nie działa? Bo zanim napisałem robiłem proste testy:

1. http://datatables.net/api#fnGetPosition
2. klikam "Run in JS Bin"
3. Patrzę jak działa skrypt: jak klikam na td to zmienia się jego treść:
Kod
   $(document).ready(function() {
   $(document).ready(function() {
     $('#example tbody td').click( function () {
       // Get the position of the current data from the node
       var aPos = oTable.fnGetPosition( this );
      
       // Get the data array for this row
       var aData = oTable.fnGetData( aPos[0] );
      
       // Update the data array and return the value
       aData[ aPos[1] ] = 'clicked';
       this.innerHTML = 'clicked';
     } );
    
     // Init DataTables
     oTable = $('#example').dataTable();
   } );
   } );

4. Usuwam większość kodu( jak kilkam wyświetla mi alert-a, a nawet 2 ):
Kod
   $(document).ready(function() {
     $('#example tbody td').click( function () {
       alert( this );
       var aPos = oTable.fnGetPosition( this );
       alert( aPos );
     } );
    
     // Init DataTables
     oTable = $('#example').dataTable();
   } );

5. Dodaję mój kod z poprzedniego posta:
Kod
   $(document).ready(function() {
     $('#example tbody td').click( function () {
       alert( $(this).parent("tr").get(0) );
       var aPos = oTable.fnGetPosition( $(this).parent("tr").get(0) );
       alert( aPos );
     } );
    
     // Init DataTables
     oTable = $('#example').dataTable();
   } );


I jak klikam uzyskuję numer klikniętego tr. On jest tam w okolicach 6 na pierwszym <tr>, bo tak jest skonstruowana na tabela - zobacz przez firebug-a
Go to the top of the page
+Quote Post

Posty w temacie


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: 3.10.2025 - 02:08