数据表过滤&行高亮不能一起工作
Datatable Filtering & Row Highlighting not working together
我有一个数据表,有行突出显示和表排序,但是当我运行两段代码时,一个用于突出显示,一个用于过滤,我得到一个错误。
我明白为什么我得到错误,但无论我如何写代码,一旦我把它们连接在一起的代码停止工作,下面是我的javascript代码和链接到jsfiddle的例子。
$(document).ready( function () {
$('#example').dataTable( {
"aoColumns": [
null,
null,
null,
null,
null,
null,
{ "sType": "date-uk" },
{ "sType": "date-uk" },
{ "sType": "date-uk" },
null,
null,
null
]
});
jQuery.extend( jQuery.fn.dataTableExt.oSort, {
"date-uk-pre": function ( a ) {
var ukDatea = a.split('/');
return (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1;
},
"date-uk-asc": function ( a, b ) {
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
},
"date-uk-desc": function ( a, b ) {
return ((a < b) ? 1 : ((a > b) ? -1 : 0));
}
});
fnRowCallback: function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
if (aData[3] == "PV PLUS") {
$(nRow).addClass('highlight');
}
if (aData[3] == "ECO1") {
$(nRow).addClass('highlight1');
}
if (aData[3] == "ECO2") {
$(nRow).addClass('highlight2');
}
}
});
链接JSfiddle
编辑代码 $(document).ready( function () {
$('#example').dataTable( {
"aoColumns": [
null,
null,
null,
null,
null,
null,
{ "sType": "date-uk" },
{ "sType": "date-uk" },
{ "sType": "date-uk" },
null,
null,
null
]
});
jQuery.extend( jQuery.fn.dataTableExt.oSort, {
"date-uk-pre": function ( a ) {
var ukDatea = a.split('/');
return (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1;
},
"date-uk-asc": function ( a, b ) {
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
},
"date-uk-desc": function ( a, b ) {
return ((a < b) ? 1 : ((a > b) ? -1 : 0));
}
});
var table = $('#example').DataTable({
fnRowCallback: function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
if (aData[3] == "PV PLUS") {
$(nRow).addClass('highlight');
}
if (aData[3] == "ECO1") {
$(nRow).addClass('highlight1');
}
if (aData[3] == "ECO2") {
$(nRow).addClass('highlight2');
}
}
});
});
所以我已经更新了我的代码,它不再出错了,但是高亮显示也不工作了。
正确代码如下:
$.extend($.fn.dataTableExt.oSort, {
"date-uk-pre": function(a) {
var ukDatea = a.split('/');
return (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1;
},
"date-uk-asc": function(a, b) {
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
},
"date-uk-desc": function(a, b) {
return ((a < b) ? 1 : ((a > b) ? -1 : 0));
}
});
$(document).ready(function() {
$('#example').DataTable({
'columnDefs': [
{ 'type': 'date-uk', 'targets': [6,7,8] }
],
'rowCallback': function( row, data, index ){
if (data[3] == "PV PLUS") {
$(row).addClass('highlight');
}
if (data[3] == "ECO1") {
$(row).addClass('highlight1');
}
if (data[3] == "ECO2") {
$(row).addClass('highlight2');
}
}
});
});
参见更新后的jsFiddle获取代码和演示
相关文章:
- 两个独立工作的javascript函数,但不能一起工作
- jquery draggable和resizable在动态生成的元素中不能一起工作
- AngularJS和JS Math.max.apply()不能一起工作
- javascript和php不能一起工作
- 多个 Angular 验证器独立工作,但不能一起工作
- onclick 和 ondblclick 不能一起工作
- 数据切换和onclick不能一起工作,我太新了,无法应用@epascarello的解决方案
- 图像滑块和下拉菜单不能一起工作
- 变量数组+正则表达式不能一起工作
- jQuery .then() 和 success block 不能一起工作
- 两个jquery项不能一起工作
- Bootstrap滚动间谍和粘性导航不能一起工作
- 两个函数don't不能一起工作,但不能出错
- Fancybox 2和滑动滑块不能一起工作
- 两个java脚本不能一起工作
- 更改src和currentTime;我不能一起工作
- 链接和图像不能一起工作
- Knockout.js和敲除验证不能一起工作
- HTML, CSS, JQUERY不能一起工作
- Javascript (canvas) - for循环和drawImage不能一起工作