gpt4 book ai didi

javascript - 无法使用 "Yet Another DataTables Column Filter"插件销毁()

转载 作者:行者123 更新时间:2023-11-29 15:37:09 27 4
gpt4 key购买 nike

我正在使用 DataTablesYADCF过滤表格。

在某些时候,我需要暂时解除两个插件与我的表的绑定(bind),然后再重新绑定(bind)它们。如果我不使用 YADCF,我可以销毁数据表并重新初始化它。然而,当我使用 YADCF 时,表的过滤器部分并没有被破坏。

HTML:

<a href="#" id="create">Create</a> | <a href="#" id="destroy"> Destroy</a>

<table id="mytable" class="results table table-striped">
<thead>
<tr>
<th>Head 1</th>
<th>Head 2</th>
<th>Head 3</th>
</tr>
</thead>
<tbody>
<tr>
<td>12</td>
<td>13</td>
<td>14</td>
</tr>
<tr>
<td>12</td>
<td>13</td>
<td>14</td>
</tr>
<tr>
<td>152</td>
<td>13</td>
<td>154</td>
</tr>
<tr>
<td>1762</td>
<td>1873</td>
<td>1874</td>
</tr>
<tr>
<td>124</td>
<td>1343</td>
<td>1124</td>
</tr>
</tbody>
</table>

没有 YADCF 的 JS JSFIDDLE :

var oTable = $('table');

$('#create').click(function (e) {
e.preventDefault();
oTable.dataTable({
"bJQueryUI": true,
"bStateSave": true,
"bPaginate": false,
"bAutoWidth": false,
});

});

$('#destroy').click(function (e) {
e.preventDefault();
oTable.fnDestroy();
oTable.attr('class', '');
});

带有 YADCF 的 JS JSFIDDLE :

var oTable = $('table');

$('#create').click(function (e) {
e.preventDefault();
oTable.dataTable({
"bJQueryUI": true,
"bStateSave": true,
"bPaginate": false,
"bAutoWidth": false,
});


// Add YADCF
oTable.yadcf([{
column_number: 1,
filter_type: 'range_number',
ignore_char: 'm'
}, {
column_number: 2,
filter_type: 'text',
filter_default_label: ' '
},
]);


});

$('#destroy').click(function (e) {
e.preventDefault();
oTable.fnDestroy();
oTable.attr('class', '');
});

任何人都可以建议如何销毁 YADCF 过滤器吗?

最佳答案

所以,这实际上是一个错误。

Issue Submitted | Workaround JSFiddle

JS:

var oTable = $('table');
var first = true;

$('#create').click(function (e) {

e.preventDefault();
oTable.dataTable({
"bJQueryUI": true,
"bStateSave": true,
"bPaginate": false,
"bAutoWidth": false
});

if (first) {
first = false;
// Add YADCF
oTable.yadcf([{
column_number: 1,
filter_type: 'range_number',
ignore_char: 'm'
}, {
column_number: 2,
filter_type: 'text',
filter_default_label: ' '
} ]);
} else {
oTable.find('thead').find('[id^=yadcf-filter-wrapper-table]').each(function (i, v) {
var cloned = $(this).clone(true);
console.log( $(this) );
$(this).closest('th').append( cloned );
$(this).remove();
oTable.find('.DataTables_sort_wrapper').css('display', 'inline-block');
});
oTable.find('[id^=yadcf]').show();
}

});

$('#destroy').click(function (e) {
e.preventDefault();
oTable.fnDestroy();
oTable.attr('class', '');
oTable.off();
oTable.find('[id^=yadcf]').hide();
oTable = $('table');
});

$('#add-row').click(function (e) {
e.preventDefault();
$('table').append('<tr><td>' + getRandom() + '</td><td>' + getRandom() + '</td><td>' + getRandom() + '</td></tr>');
});

function getRandom() {
return parseInt(10000 * Math.random(), 10);
}

关于javascript - 无法使用 "Yet Another DataTables Column Filter"插件销毁(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26735050/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com