خلية jQuery DataTable من صف انقر فوق
-
02-10-2019 - |
سؤال
أحاول تنفيذ وظيفة على jQuery DataTable ، التي تُرجع العمود الأول والرابع من صف تم النقر عليه
أنا أتابع هذا المثال ، والذي يسمح لي بالتعامل مع صف تم النقر عليهhttp://datatables.net/examples/api/select_single_row.html
التفكير في أنه يمكنني تغيير هذا المعالج للقيام بإجراءات قيمة الخلية القراءة واستخدام القيمة على منطقي الخاص
/* 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() );
} );
هل يمكنني الحصول على أي مؤشر حتى أتمكن من الحصول على العمود الأول والرابع من الحقل الذي تم النقر عليه؟
الجزء التاليلدي ما سبق حل ، شكرا نيك
ومع ذلك لدي الجزء التالي من المشكلة. عندما أبدأ الجدول الذي أستخدمه
/* 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
} );
}
} );
يأخذ servlet معلمة طلب DIR وإرجاع قائمة إلى DataTable كاستجابة JSON.
/crvWeb/jsonFileList.do
كيف يمكنني إضافة استجابة Serlvet والحصول عليها مع طلب النشر حتى أتمكن من تحديث الجدول الخاص بي؟
المحلول
يمكنك استخدام .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>
.
نصائح أخرى
يجب أن يقوم هذا بالخدعة ، إذا كنت أقرأ الكود الخاص بك بشكل صحيح:
$("tr.row_selected td:nth-child(1), tr.row_selected td:nth-child(4)");
يجب أن يعيد الطفل الأول والرابع من جميع عناصر TR مع الفصل row_selected
.