对表进行多次AJAX调用不止一次初始化?

这个问题很棘手所以我会发布上下文:

  1. 我在页面上有一个通过AJAX加载的片段。
  2. 该页面包含一个表,该表将由具有服务器端处理的 Datatables供电和填充。
  3. 每次我加载包含新表的片段时,我都会告诉Datatables使用bDestroy : true从头开始引导表。

问题

当我通过AJAX加载新表时,AJAX调用获取数据,因为JSON不断堆积。

如何防止这些呼叫堆叠并将其减少为一个? 谢谢。


代码示例(根据要求)

 /* datatables initializer */ $("#table").dataTable({ bDestroy : true , bServerSide : true , sAjaxSource : "path/to/json.json" , ... }); /* script inside the AJAX loaded content. It outputs a . */ $(function() { $("body").trigger({ type : "tableready", options : { ... } }); });

这个问题的答案来自DataTables的责任。 上面的代码示例缺少问题的原因。

我已经构建了一个类,它将事件绑定到一个赋予表权限的函数。 每次我调用检索表的AJAX调用时,函数都会在顶部堆叠另一个绑定,因此多次调用数据。

解决方案是要么检查你是否已绑定该事件,要么unbind()事件并重新bind()它。