【发布时间】:2016-06-15 20:05:25
【问题描述】:
我正在尝试实现一个具有基本搜索和高级搜索的网络应用程序,并且我正在使用数据表 1.10 和 jquery 2.2 来显示搜索结果。我在使用 destroy 方法时遇到问题,希望你们中的一些人能够帮助我找到解决方案,在此先感谢大家的帮助
让我稍微解释一下我的项目,代码逻辑,目标和问题:
正如您在我的 jsfiddle 上看到的那样,我有一个包含 5 列的表。我还有一个全局变量“表”来处理创建后的数据表(DT)。我声明了一个函数“loadSearchData”来为另一个全局变量加载 Ajax 调用的参数。在我的两个搜索按钮的单击事件中,我检查 DT 是否已经存在然后我将其销毁,然后我调用函数“initializeDataTable”。我的想法是销毁现有的 DT 并在每次单击“搜索”按钮时创建一个新的。但是它不起作用,并且行为“奇怪”:
我第一次输入搜索条件并单击搜索,效果很好。如果我修改搜索条件并再次单击搜索,则会出现网页错误
“第 1 行错误:无法获取未定义或空引用的属性“样式””
然后,如果不调试,再次点击搜索按钮,那么它又可以正常工作了!
代码:
//BASIC SEARCH
$('#btnBasicSearch').on('click', function () {
$("#partialSearch").removeAttr("hidden");
loadSearchData('basicSearch');
if ($.fn.DataTable.isDataTable('#tbDocumentsList')) {
table.destroy();
}
initializeDataTable(searchParameters);
});
//ADVANCED SEARCH
$("#btnSearch").on('click', function () {
$("#partialSearch").removeAttr("hidden");
loadSearchData('advancedSearch');
jQuery.ajaxSettings.traditional = true;
if ($.fn.DataTable.isDataTable('#tbDocumentsList')) {
table.destroy();
}
initializeDataTable(searchParameters);
});
我确信有更好的方法可以做到这一点,这是我第一次使用数据表,可能我遗漏了一些东西,有人知道吗?
你可以在这里看到完整的 jsfiddle
https://jsfiddle.net/dalps/gxgLdo03/
我也在datatable论坛上问过:
提前致谢
达尔普斯
【问题讨论】: