如何解决jQuery dataTable自定义排序选择旧HTML?
| 我在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,没有骰子。我尝试将sort函数转换为闭包,没有骰子。
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%\',bSearchable: false }
],}).show();
解决方法
确定,我找到了答案:我没有正确使用DataTable。我在DataTable之外使用自己的JS重新渲染TD,但结合使用了
fnRender
bUseRendered:否
萤火虫
我能够返回当前正确的HTML。事实证明,DataTable默认情况下保留原始表的缓存,并且通过使用这两点,我能够获得当前的HTML。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。