gpt4 book ai didi

javascript - JQuery DataTables 不保存状态

转载 作者:行者123 更新时间:2023-12-02 21:13:29 26 4
gpt4 key购买 nike

我有一个使用 JQuery DataTables 的表。它是一个项目列表,每个项目都有一个超链接。当用户单击该超链接时,他们会转到单独的“详细信息”页面。当他们回去时,我希望他们能像他们找到的那样找到 table 。

这是表的初始化脚本:

$(document).ready(function() {

// Setup - add a text input to the cell's headers
document.querySelectorAll('#mainTable thead th')[1].innerHTML += '<input type="text" placeholder="Search" />';
document.querySelectorAll('#mainTable thead th')[2].innerHTML += '<input type="text" placeholder="Search" />';
document.querySelectorAll('#mainTable thead th')[3].innerHTML += '<input type="text" placeholder="Search" />';
document.querySelectorAll('#mainTable thead th')[4].innerHTML += '<input type="text" placeholder="Search" />';


// DataTable

var table = $('#mainTable').DataTable( {
colReorder: true,
lengthMenu: [25, 50, 75, 100 ],
retrieve: true,
saveState: true,

"columns": [
{ "orderable": true,
"className": "dateSent" },
{ "orderable": false },
{ "orderable": false },
{ "orderable": false },
{ "orderable": false },
{ "orderable": false },
]
} );

// Apply the filter


$("#mainTable thead input").on( 'keyup change', function () {
table
.column( $(this).parent().index()+':visible' )
.search( this.value )
.draw();
} );
});

它以前可以工作,我记得我唯一改变的是添加单列搜索。但即使删除它也无济于事。有人能指出我正确的方向吗?

就像现在一样,每次用户从详细信息页面单击“返回”时,他们都会在第 1 页找到表格,即使他们将其留在第 3 页。

更新

经过多次不成功的测试后,我开始在不同的浏览器上进行测试,结果发现这很可能是 AdBlocker Ultimate 插件的问题,它阻止了 DataTables 存储到 localStorage。对于这个表述不当的问题以及浪费您的时间表示歉意,因为这个问题是一个愚蠢且与 DataTables 本身无关的问题!

更新二

正如我上面所说,该问题是由于我的浏览器中的广告拦截插件造成的。我提供的可重现示例与此处工作的示例相同:https://datatables.net/examples/basic_init/state_save.html ,因为那是我开始使用原始代码的地方。因此,这是多余的,特别是,正如我重复的那样,问题不在代码中,而在浏览器中。

最佳答案

临时黑客 - 不是真正问题的真正解决方案:

出于某种原因添加旧代码:

retrieve: true,
"bStateSave": true,
"fnStateSave": function (oSettings, oData) {
localStorage.setItem( 'DataTables', JSON.stringify(oData) );
},
"fnStateLoad": function (oSettings) {
return JSON.parse( localStorage.getItem('DataTables') );
},

(参见 here )到表的初始化,而不是现代且更好的 saveState: true 可以解决这个问题,所以我现在正在使用它。

实际问题/解决方案

这里真正的问题是由于我的浏览器的广告拦截扩展造成的(抱歉,引起了大家的大惊小怪!)。禁用它会恢复 DataTables 的预期行为,即将状态(页码等)保存到 localStorage 中。启用广告拦截扩展程序后,这种情况并不总是发生。

关于javascript - JQuery DataTables 不保存状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61026883/

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