سؤال

أحاول تنفيذ وظيفة على 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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top