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

时间:2011-07-20 13:52:20

标签: javascript jquery datatables

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

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

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

    问题

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


    代码样本(根据要求)

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

1 个答案:

答案 0 :(得分:0)

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

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

解决方案是检查您是否已经绑定了该事件,或者unbind()该事件,然后重新bind()