【问题标题】:jQuery DataTable plugin initialization issuejQuery DataTable 插件初始化问题
【发布时间】:2015-06-11 11:20:22
【问题描述】:

对不起我的英语不好 我在初始化代码中遇到了数据表 jquery 插件的问题。

我进行了 ajax 调用以重新加载和更新网格中的过滤数据,插件通过双重初始化返回错误

这里是代码

cargarInmuebles(p);
var tablegrid = null;
function cargarInmuebles(params)
{

  jQuery(document).ready(function($) {

    $.ajax({
      url: "getXmlInmuebles.php"+params
    }).done(function(data) {

      $('marker',data).each(function() {

        //code reduced... all variables having data

        var itemMarker = ['<img width="141" src="'+imagen+'" height="100" alt="'+idinmueble+'"/>',operacion,dorm,superficie,precio];
        markersArray.push(itemMarker);
        //here markersArray is correct
});
        //here is problem
        if(tablegrid)
        {
          tablegrid.fnDestroy();
          tablegrid = $('#grid-basic').dataTable({
            "data" : markersArray,
            "columns": [
              { "title": "Imagen" },
              { "title": "detalles" },
              { "title": "dorm" },
              { "title": "m2", "class": "center" },
              { "title": "precio", "class": "center" }
            ]
          });
        }
        else
        {
          //twice initialization 
          tablegrid = $('#grid-basic').dataTable({
            "data" : markersArray,
            "columns": [
              { "title": "Imagen" },
              { "title": "detalles" },
              { "title": "dorm" },
              { "title": "m2", "class": "center" },
              { "title": "precio", "class": "center" }
            ]
          });
        }

      });

    });
}

谢谢。

编辑: 最后它可以在第一次初始化后添加它。

tablegrid = jQuery('#grid-basic').dataTable({ “bDestroy”:真 }).fnDestroy();

【问题讨论】:

  • 只需调用table.destroy() 而不是fnDestroy()

标签: jquery ajax datatable


【解决方案1】:

可能是,你需要更换:

"getXmlInmuebles.php"+params

与:

"getXmlInmuebles.php?"+params

忘记了?

【讨论】:

  • 不,抱歉,是正确的,因为 '?'在 params var....网格正在加载数据,但在第一次加载之后发生错误(无法重新初始化数据表)。
  • 对不起,代码错误,初始化在 .each 之后,....$('marker',data).each(function() { //代码减少...所有变量都有数据var itemMarker = ['',操作,宿舍,superficie,precio]; markersArray.push( itemMarker); //这里的markersArray是正确的}//MISSING THIS //这里有问题 if(tablegrid) {
  • @RaulSanchez 更新问题哥们的代码。
【解决方案2】:

否则试试这个:

我建议你用false 来初始化tablegrid 而不是null,如下所示:

var tablegrid=false;
//Other codes
if(!tablegrid)//check not condition first
{
    tablegrid = $('#grid-basic').dataTable({
        "data" : markersArray,
           "columns": [
              { "title": "Imagen" },
              { "title": "detalles" },
              { "title": "dorm" },
              { "title": "m2", "class": "center" },
              { "title": "precio", "class": "center" }
            ]
    });
}
else
{
    tablegrid = $('#grid-basic').dataTable({
        "destroy":true, //Try destroying here
        "data" : markersArray,
        "columns": [
              { "title": "Imagen" },
              { "title": "detalles" },
              { "title": "dorm" },
              { "title": "m2", "class": "center" },
              { "title": "precio", "class": "center" }
            ]
    });
}

【讨论】:

  • 问题出在 ajax 调用中,因为如果我在单独的 js 文件中使用代码,它可以工作。但我不知道在 .done jquery 方法中加载数据表的最佳方法是什么
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-23
  • 2012-09-09
  • 2013-03-27
  • 1970-01-01
  • 2021-04-06
  • 2015-11-04
  • 1970-01-01
相关资源
最近更新 更多