2010-12-29 21 views
0

Ich verwende DataTables und Capturing am img klicken Sie auf entweder Bearbeiten oder Löschen von Symbolen. Mein Problem ist, ich brauche auch die Zeilen-ID zu erfassen .. Ich habe versucht, die Zeilen-ID in dem href-Tag setzen, aber npt der Lage, es zu extrahieren ..DataTables jquery identifiziert Zeile ID

Der aktuelle Code

$('#datatable tbody tr a.delete img').live('click', function (e) { 
var rowID = $('a').attr('href'); 
alert(rowID); 

    if (!fancyConfirm(rowID, "Are you sure you want to delete this record?", function(ret) { alert(rowID) })) 
      e.preventDefault(); 

    }); 

ist, können Sie siehe die aktuelle Seite unter http://www(@)fisheragservice(@)com/tm/users(@)html Bitte ersetzen Sie die (@) s mit.'s, weil die Seite tatsächliche E-Mail-Adressen enthält ich eher keine spma bot finden ..

Antwort

1

Können Sie nicht anhängen nur die click Ereignis auf den Link anstelle des img hinein und dann this benutzen?

$('#datatable tbody tr a.delete').live('click', function (e) { 
var rowID = $(this).attr('href'); 
alert(rowID); 

if (!fancyConfirm(rowID, "Are you sure you want to delete this record?", function(ret) { alert(rowID) })) 
     e.preventDefault(); 

}); 

Example link

+0

Thnks .. dieses ist eine bessere Art zu tun, was ich brauche .. Danke! – Dennis

1

Sie kümmern sich um die Auswahl aller Anker mit $ (' a ') um die rowID zu bekommen. Das wird nicht funktionieren. Verwenden Sie stattdessen die Funktion parent(). Attr() im Click-Handler. d.h .:

$('#datatable tbody tr a.delete img').live('click', function (e) { 
var rowID = $(this).parent().attr('href'); 
alert(rowID); 

    if (!fancyConfirm(rowID, "Are you sure you want to delete this record?", function(ret) { alert(rowID) })) 
      e.preventDefault(); 

    }); 
+0

Das hat funktioniert! Vielen Dank .. :) – Dennis

0

Ich bin nicht sicher, ob Sie für die aktuelle Tabellenzeile suchen, oder wenn die Zeile wie eine Datenbank Schlüssel einige aussagekräftige Informationen. Wenn Sie tatsächlich eine Zeilen-ID betrachten, betrachten Sie das folgende Beispiel, das das fnRender-Attribut verwendet.

var oTable = $('#inventory_list').dataTable ({ 
'bServerSide' : true, 
'bAutoWidth'  : false, 
'bJQueryUI'  : false, 
'sPaginationType': 'full_numbers', 
'sAjaxSource' : '/inventory/listall', 
'aoColumns'  : 
[ 
{ 
    'bSearchable': false, 
     "bSortable": false, 
     "fnRender" : function (oObj) 
     { 
      var colval = '<div class="editcol"><a href="/inventory/edit/' + 
       oObj.aData[0] + '">' + 
       '<img src="/img/edit.png" alt="edit"><a/>' + 
       '<a href="/inventory/delete/' + oObj.aData[0] + '">' + 
       '<img src="/img/delete.png" alt="delete"><a/>' + 
       '</div>'; 

       return colval; 
     } 
}, 
null, 
null, 
null, 
null, 
null, 
null, 
null, 
null, 
null 
] 
}); 

Die erste Spalte (von 10) enthält die Symbole zum Bearbeiten/Löschen.

Der listall-Aufruf an den Server gibt die Inventory-ID in der ersten -Zelle zurück, die von oObj.aData [0] referenziert wird und zum Erstellen der URL verwendet wird.