2016-07-27 8 views
0

Anwendungsfall: Benutzer klickt auf eine Datentabelle Zelle. Je nach Zeile und Spalte dieser Zelle sollte eine bestimmte Aktion ausgeführt werden.Wie jQuery Datatable die angeklickte Zeile und Spalte einchecken?

Wie kann ich überprüfen, ob das nicht auf eine bestimmte Spalte klickt und wenn er nicht auf diese Spalte klickt, dann würde ich Informationen aus der Zeile abrufen, auf die er geklickt hat, und ihm erlauben, eine Aktion basierend auf diesen Informationen auszuführen .

Ich habe es so und es funktioniert:

var validColumn = false; 
    $('#fooTable tbody').on('click', 'td', function() { 
    validColumn = $('#fooTable').DataTable().cell(this).index().column !== 5; 
    }); 
    $('#fooTable tbody').on('click', 'tr', function() { 
    if (validColumn) { 
     //do stuff 
    } 
    }); 

Aber ich fühle es eine elegantere Methode ist.

+0

Zeigen Sie Ihre HTML-Hilfe! – CMedina

Antwort

0

Sie zuerst eine Arie zum td die Position zu identifizieren, so etwas wie Tabelle wiht 6 Spalten so

<tr aria-number="1"> 
    <td aria-number="1"> 
    <td aria-number="2"> 
    <td aria-number="3"> 
    <td aria-number="4"> 
    <td aria-number="5"> 
    <td aria-number="6"> 
</tr> 

Das Gleiche gilt für tr, denken ist einfach Art und Weise

Verwenden jQuery Funktion .parent zu tun(), Senden von $ (this), also.

var td = $(this).parent();//If the item clicked is something inside of td 
var tr = $(this).parent().parent();//To select the tr where was clicked 

Und die Arie rufen mit

if(td.attr('aria-number') == 6){ //do something; }