DataTables jquery, идентифицирующий идентификатор строки - PullRequest
0 голосов
/ 29 декабря 2010

Я использую DataTables и собираю значок. Нажмите на иконку, чтобы изменить или удалить иконку.Моя проблема в том, что мне нужно также захватить идентификатор строки .. Я пытался поместить идентификатор строки в тег href, но npt смог извлечь его ..

Текущий код:

 $('#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();

     });

Вы можете увидеть фактическую страницу в http://www(@)fisheragservice(@)com/tm/users(@)html Пожалуйста, замените (@) на., Потому что страница содержит фактические адреса электронной почты. У меня, скорее всего, нет спма-бота.

Ответы [ 3 ]

1 голос
/ 29 декабря 2010

Разве вы не можете просто прикрепить событие click к ссылке вместо img внутри нее и затем использовать this?

 $('#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();

 });

Пример ссылки

1 голос
/ 29 декабря 2010

Вы выбираете все якоря, используя $ ('a') для получения rowID. Это не будет работать. Вместо этого используйте функцию parent (). Attr () в обработчике кликов. i.e.:

$('#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 голосов
/ 17 января 2011

Я не уверен, ищете ли вы фактическую строку таблицы или если строка содержит некоторую значимую информацию, например ключ базы данных.

Если вы действительно просматриваете идентификатор строки, рассмотрите приведенный ниже пример, которыйиспользует атрибут fnRender.

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
]
});

В первом столбце (из 10) содержатся значки редактирования / удаления.

Вызов listall серверу возвращает идентификатор инвентаря в первой ячейке,на который ссылается oObj.aData [0], а также используемый для построения URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...