2012-03-10 6 views
0

Привет Я пытаюсь получить строки в DataTable до высокого света, когда его выбрали, однако приведенный ниже код не работает. Я вижу, что класс добавляется к элементу, но он не меняет цвет.datatable row not highligting

$(document).ready(function(){ 

var table = $('#table').dataTable({ 

'bProcessing':true, 
"bJQueryUI": true, 
"bFilter": false, 
"sAjaxSource":'data.php', 
    "bAutoWidth": false, 
    "aoColumns": [ 
      {sWidth: '70px' 
       }, 
        { 
       } 

       ] 
    }).makeEditable({ 
    //make editable code 

      }], 


    }); 

     $("#table tbody").click(function(event) { 
     $(table.fnSettings().aoData).each(function(){ 
      $(this.nTr).removeClass('row_selected'); 
     }); 
     $(event.target.parentNode).addClass('row_selected'); 
    }); 



}); 

Я совершенно не знаком с javascript, поэтому использовал код в datatable в качестве примера для выделения строки. Любые идеи, спасибо.

+1

Если класс добавлен правильно, возможно, проблема связана с правилами CSS? – JJJ

+0

спасибо, в этом была проблема. Я превизоли играл с css, но он не работал. Я просто добавил правило: .row_selected td { \t background-color: # 000000; } и vola it works – Sun

ответ

0

Есть способы добавить обработчики событий в методы рендеринга API-интерфейсов данных, но это, вероятно, будет проще.

Я использовал на() метод, чтобы связать это событие в случае, если вы подкачки, или будущие дополнения строки таким образом, любые строки, добавленные в будущем также будет иметь обработчик связанный с ними

http://api.jquery.com/on/

$("#table tbody").on('click','tr',function(event) { 
    /* find "selected" class and remove class */          
    $('#table tr.row_selected').removeClass('row_selected'); 
    /* "this" is current row*/ 
    $(this).addClass('row_selected'); 
});