jQuery dataTable пользовательская сортировка, собирающая старый HTML? - PullRequest
0 голосов
/ 26 мая 2011

У меня есть этот пользовательский сортировщик в dataTable:

jQuery.fn.dataTableExt.oSort['abbr-date-asc']  = function(a,b) { 
  var x = a.match(/abbr="(.*?)"/)[1]; 
  var y = b.match(/abbr="(.*?)"/)[1]; 
  return ((x < y) ? -1 : ((x > y) ?  1 : 0)); 
};

Когда я вхожу в отладчик, то в переменной A находится OLD HTML, т. Е. Что там, когда страница впервые рисуется.После того, как страница прорисована и в функции onReady перед выполнением этого кода ^^, я перерисовываю TDS в моей таблице, чтобы он стал другим HTML, который я хочу, чтобы этот пользовательский сортировщик взял.Это подбирать старые вещи.Любая идея?

РЕДАКТИРОВАТЬ: ЗДЕСЬ HTML

<span abbr="">     
    <span class="localtimeUTC" style="display: none;">Dec 03, 2011</span>
    <span class="localtimeUTCabbr" style="display: none;">2011-12-03</span>   
</span>

И это HTML-код на странице в момент нажатия, когда я хочу отсортировать его:

<span abbr="2011-12-03">Dec 03, 2011</span>

Подбирает оригинал.Я пытался использовать bUseRendered: false в определении таблицы, без кости.Я попытался преобразовать функцию сортировки в замыкание, без игры в кости.

  jQuery('#my_table').dataTable( { 
    "bJQueryUI": true, 
    "bAutoWidth": false, 
    "bUseRendered" : false, 
    "aoColumns" : [ 
    { sWidth: '5%', bSortable: false, bSearchable: false }, 
    { sWidth: '35%' }, 
    { sWidth: '15%' }, 
    { sWidth: '15%', sType: 'abbr-date', bSortDataType: "abbr-date" }, 
    { sWidth: '30%', bSortable: false, bSearchable: false } 
    ], 
}).show();

1 Ответ

0 голосов
/ 26 мая 2011

ОК. Я нашел ответ: я не использовал DataTable должным образом. Я повторно рендерил TD, используя мой собственный JS за пределами DataTable, но используя комбинацию

fnRender bUseRendered: false Firebug

Мне удалось вернуть текущий верный HTML. Оказывается, по умолчанию DataTable хранит кеш исходной таблицы, и с помощью этих двух вещей я смог получить текущий HTML.

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