JQuery DataTable Cell от щелчка строки - PullRequest
13 голосов
/ 06 июля 2010

Я пытаюсь реализовать функцию в jquery datatable, которая возвращает 1-й и 4-й столбцы строки, по которой щелкнули,

Я следую этому примеру, который позволяет мне манипулировать строкой, по которой щелкнули1004 *

думая, что я могу изменить этот обработчик для выполнения процедур чтения значений ячеек и использовать значение в своей собственной логике

/* Add a click handler to the rows - this could be used as a callback */
$("#example tbody").click(function(event) {
    $(oTable.fnSettings().aoData).each(function (){
        $(this.nTr).removeClass('row_selected');
    });
    $(event.target.parentNode).addClass('row_selected');
});

я также пришел с этим небольшим сегментом кода с форума dataTable http://datatables.net/forums/comments.php?DiscussionID=1384&page=1#Item_0

$('#example tbody tr').click( function () {
    // Alert the contents of an element in a SPAN in the first TD
    alert( $('td:eq(0) span', this).html() );
} );

Могу ли я иметь любой указатель, чтобы я мог получить 1-й и 4-й столбец поля, по которому щелкнули?

следующая часть У меня есть решение выше,спасибо ник

однако у меня есть следующая часть проблемы.когда я инициализирую таблицу, я использую

/* Init the table */
    oTable = $('#filetable').dataTable( {
        "bProcessing": true,
        "bServerSide": true,
        "sAjaxSource": "/crvWeb/jsonFileList.do",
        "fnServerData": function ( sSource, aoData, fnCallback ) {
            $.ajax( {
                "dataType": 'json', 
                "type": "POST", 
                "url": sSource, 
                "data": aoData, 
                "success": fnCallback
            } );
        }
    } );

, мой сервлет принимает параметр запроса dir и возвращает список данных в виде ответа json.

/crvWeb/jsonFileList.do

как я могу добавить и получить ответ serlvet с пост-запросом, чтобы я мог обновить свою таблицу?

Ответы [ 2 ]

25 голосов
/ 06 июля 2010

Вы можете использовать .delegate() здесь проще всего, например:

$("#example tbody").delegate("tr", "click", function() {
  var firstCellText = $("td:first", this).text();
  var fourthCellText = $("td:eq(3)", this).text();
});

Вы можете попробовать демо здесь

С.delegate() this относится к <tr>, поскольку мы обрабатываем этот щелчок, делая его немного чище ... и это всего лишь один обработчик событий на уровне <tbody>, а непо одному на <tr>.

0 голосов
/ 06 июля 2010

Это должно сработать, если я правильно читаю ваш код:

$("tr.row_selected td:nth-child(1), tr.row_selected td:nth-child(4)");

Он должен возвращать первый и четвертый дочерний элемент всех элементов tr с классом row_selected.

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