jQuery Datatable排序错误/错误Chrome特定需要解决的问题
这是我的密码jQuery Datatable排序错误/错误Chrome特定需要解决的问题,jquery,sorting,datatable,Jquery,Sorting,Datatable,这是我的密码 jQuery.fn.dataTableExt.oSort['num-asc'] = function(a,b) { var x = a.replace( /<.*?>/g, "" ); var y = b.replace( /<.*?>/g, "" ); x = parseFloat( x ); y = parseFloat( y ); return ((x < y) ? -1 : ((x > y) ?
jQuery.fn.dataTableExt.oSort['num-asc'] = function(a,b) {
var x = a.replace( /<.*?>/g, "" );
var y = b.replace( /<.*?>/g, "" );
x = parseFloat( x );
y = parseFloat( y );
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
};
jQuery.fn.dataTableExt.oSort['num-desc'] = function(a,b) {
var x = a.replace( /<.*?>/g, "" );
var y = b.replace( /<.*?>/g, "" );
x = parseFloat( x );
y = parseFloat( y );
return ((x < y) ? 1 : ((x > y) ? -1 : 0));
};
$(document).ready(function() {
$('#ledger').dataTable({
bAutoWidth: false,
bJQueryUI : true,
bProcessing: true,
bServerSide: false,
sPaginationType: "full_numbers",
bStateSave : false,
bUseRendered: false,
iDisplayLength: ${entriesValue},
sDom: mw.superadmin.datatable.relatedListDom,
aLengthMenu: mw.superadmin.datatable.relatedListLengthMenu,
aaSorting: [[0,'asc']],
aoColumns: [
null,
{ "iDataSort": 2},
{ "bVisible": false, "sType": "num"},
{ "iDataSort": 4, "bSortable": true },
{ "bVisible": false, "sType": "num"}
]
});
jQuery.fn.dataTableExt.oSort['num-asc']=函数(a,b){
var x=a.replace(//g,“”);
变量y=b.replace(//g,“”);
x=parseFloat(x);
y=浮动(y);
回报率((xy)?1:0);
};
jQuery.fn.dataTableExt.oSort['num-desc']=函数(a,b){
var x=a.replace(//g,“”);
变量y=b.replace(//g,“”);
x=parseFloat(x);
y=浮动(y);
回报率((xy)?-1:0);
};
$(文档).ready(函数(){
$(“#分类账”)。数据表({
鲍托维兹:错,
bJQueryUI:是的,
b处理:对,
bServerSide:false,
sPaginationType:“完整编号”,
bStateSave:false,
B:错,
iDisplayLength:${entriesValue},
sDom:mw.superadmin.datatable.relatedListDom,
aLengthMenu:mw.superadmin.datatable.relatedListLength菜单,
A排序:[[0,'asc']],
AO列:[
无效的
{“iDataSort”:2},
{“bVisible”:false,“sType”:“num”},
{“iDataSort”:4,“bSortable”:true},
{“bVisible”:false,“sType”:“num”}
]
});
据我所知,这张表在IE、FF、Opera和Safari上100%正常工作,但在Chrome上它失败了,但只在我的可排序集的一个特定列上。我想不出来,需要一些帮助
下图显示了它在Chrome上的作用。
就我个人而言,我觉得它的原因是它包含了(,[})等字符。然而,正如我所说的,其他浏览器没有问题,Chrome是唯一一个在这方面给我带来问题的浏览器。我也遇到了同样的问题,Chrome中的datatable无法在九个列中的一个列上排序。但是它在Firefox中工作得非常好 为了让它在Chrome中工作,我必须显式地为all列指定 在我的例子中,“html”工作得很好
$('#xxx').dataTable({
"bJQueryUI": true,
"bSort": true,
"aoColumns": [
{"sType": "html"},
{"sType": "html"},
{"sType": "html"}
]
});
我猜Chrome中自动检测列类型的功能有点失败。我也遇到了同样的问题,Chrome中的datatable无法在九个列中的一个列上排序。但是它在Firefox中工作得非常好 为了让它在Chrome中工作,我必须显式地为all列指定 在我的例子中,“html”工作得很好
$('#xxx').dataTable({
"bJQueryUI": true,
"bSort": true,
"aoColumns": [
{"sType": "html"},
{"sType": "html"},
{"sType": "html"}
]
});
我猜Chrome中自动检测列类型的功能不知怎的失败了。我必须试一试。我仍然有问题。通过与开发人员的讨论和四处搜索,我发现这是Chrome特有的错误,加上数据表的开发方式。简言之,Chrome从未处理过数据类型稍微不同的是,在排序过程中,它在翻译过程中丢失了。它将HTML和字符串合并为一个字符串,因为HTML在字符串中,所以排序取决于您在所述字符串中的HTML,在我的例子中,与其他内容的隐藏参数链接。@chris有趣的是,我的问题专栏是纯文本。这对我和不起作用的列是纯文本。奇怪的是,其他列起作用了。我喜欢堆栈溢出。有同样的问题,但使用
mRender
覆盖显示,发现您可以将if(type==='display'){…}
更改为if(type=='display'| type=='type'){…}
这使它也能工作。我必须试一试。我仍然有问题。通过与开发人员的讨论和四处搜索,我发现这是一个Chrome特有的错误,加上datatables的开发方式。简而言之,Chrome处理的数据类型和排序略有不同它在翻译过程中丢失。它将HTML和字符串组合为一个字符串,因为HTML在字符串中,所以排序取决于所述字符串中的HTML,在我的例子中,链接与其他内容的隐藏参数。@chris有趣的是,我的问题列是纯文本。这对我有效,而不起作用的列是纯文本。奇怪的是,其他列也起作用了。我喜欢堆栈溢出。也有同样的问题,但使用mRender
覆盖显示,发现您可以将if(type=='display'){…}
更改为if(type=='display'.\124; type=='type'){…}
,这使得它也可以工作。