无法获取(Footable)函数在AJAX调用中工作,但它在其他地方工作

时间:2017-04-28 01:50:28

标签: javascript jquery ajax footable

编辑: 似乎此问题仅发生在Chrome中。 Firefox很好。

Footable是一个JQuery插件。 https://fooplugins.com/plugins/footable-jquery/

以下功能由" Footable"插件使.table类有一个很好的布局。 :

jQuery('.table').footable({
      "columns": result,
      "rows": response
    });

我想在AJAX调用中运行该函数:

$.get('../php/campaignmanagement.php', function(response){
 response = JSON.parse(response);
 var columns = Object.keys(response[0]);
 var result = columns.map(x => {
 return {
   title: x,
   name: x
 }//end return
});

//FUNCTION HERE
jQuery('.table').footable({
  "columns": result,
  "rows": response
});
//FUNCTION ABOVE

......... Other irrelevant code... 
});

这给了我以下错误:

jQuery(...).footable is not a function

但是,如果我将函数移到AJAX函数之外,它就会起作用。

e.g。

 //FUNCTION HERE
 jQuery('.table').footable({
      "columns": result,
      "rows": response
    });
 //FUNCTION ABOVE

 $.get('../php/campaignmanagement.php', function(response){
     response = JSON.parse(response);
     var columns = Object.keys(response[0]);
     var result = columns.map(x => {
     return {
       title: x,
       name: x
     }//end return
    });



......... Other irrelevant code... 
});

我需要能够在AJAX中运行该函数。 为什么AJAX会导致一切破裂?

仅供参考:HTML文档正在调用这样的脚本:( campaignmanagement.js是运行上述功能的文件)

    <script src="../vendors/jquery/jquery.js"></script>
    <script src="../vendors/footable/js/footable.js"></script>
    <script src="../vendors/foundation 6/foundation.js" type="text/javascript"></script>
    <script src="../js/campaignmanagement.js"></script>

1 个答案:

答案 0 :(得分:1)

您在这里使用了两个不同的jQuery对象,第一个是$(除非您已将此分配给我们看不到的其他内容)和jQuery。您可以在其自身内部使用$对象,或者获取AJAX请求闭包中可用元素的引用。

// grab a reference to the table using jquery
var table = $('.table')

$.get('../php/campaignmanagement.php', function(response){
 response = JSON.parse(response);
 var columns = Object.keys(response[0]);
 var result = columns.map(x => {
 return {
   title: x,
   name: x
 }//end return
});

table.footable({
  "columns": result,
  "rows": response
});

});