【发布时间】:2021-11-15 17:29:56
【问题描述】:
readyState 完成后,会执行一些代码,但它在 chrome 浏览器上不起作用,直到清除缓存然后它只运行一次。如果我刷新,该代码将不会再次执行,直到再次清除缓存并且它只运行一次。我必须在就绪状态完成时执行代码,因为它运行在一个数据表上,该数据表在就绪状态完成之前不会被加载。我尝试在Documnt.ready 上执行相同的代码,但它没有找到数据表元素的ID,所以什么也没发生。这是使用的代码:
$(document).on("readystatechange", function(e) {
if (document.readyState == "complete") {
$(`#salaries-datatable-table`).wrap("<div class='col-12' style='overflow-x:auto'></div>");
$("#salaries-datatable-table_wrapper .dt-buttons").append(`<button class="btn btn-outline-
blue btn_size">OK</button>`);
}
});
结果是:对于包装,不仅表会被包装,而且它的容器 div 也会被包装,对于附加,除了清除缓存后代码第一次运行之外,什么都不会发生,按钮将被附加并且只有表会被包装.我希望我能适当地解释一下。
【问题讨论】:
-
OT - 认为您的意思是缓存而不是现金。一个是(短期)存储,另一个是货币。
-
是的,我的意思是缓存(清除浏览数据)。抱歉这个冲突,我已经编辑了问题
标签: javascript jquery datatables readystate onreadystatechange