【问题标题】:jQuery dataTable failjQuery数据表失败
【发布时间】:2015-03-17 09:52:24
【问题描述】:

我正在使用 dataTable 插件。我解决了这个问题:

table.row 不是函数

(使用 DataTable() 代替 dataTable())

有效:

function initTable(selector, ext)
{
    // merge defaults and extended settings
    ...
    // init plugin
    var table = $(selector).DataTable(params);
}
// call
initTable('#blah-blah', {...});

但我想要缓存变量(选择一次)并用于其他变量。

这不起作用(table.row 不再是函数):

function initTable(jqObj, ext)
{
    // merge defaults and extended settings
    ...
    // init plugin
    jqObj.DataTable(params);
}
// call
var table = $('#blah-blah');
initTable(table, {...});
// etc. reuse table

从 initTable 返回表对象?严重地?你可能以其他方式知道吗?

【问题讨论】:

  • 噗哈哈!只工作这个(内部函数): var tableObj = $(jqObj).DataTable(params);但这不是真正的方式..

标签: jquery datatables-1.10


【解决方案1】:

在第一个函数中,您传递了一些选择器来创建一个新的 jQuery 对象,而在第二个函数中,您传递了一个 jQuery 对象。因此,我认为问题出在您的代码的另一行,因为您的第二种方法在此代码示例中运行良好:

$(document).ready(function() {
    function initTable(jqObj, ext)
    {
        jqObj.dataTable(ext);
    }
    // call
    var table = $('#example');
    initTable(table, {"sPaginationType": "full_numbers"});
});

演示:http://jsfiddle.net/6pvtarpc/

【讨论】:

  • 不,你的回答没有用。唯一的问题是“table.row 不是函数”(用于删除 )演示:jsfiddle.net/6pvtarpc/1
  • 因为 jqObj 是 jQuery 的实例,而不是 DataTable 的实例
  • 感谢您的反对票:/ 您是否发现我的代码有任何错误?答:没有。我刚刚使用了你的代码。
  • 我想我找到了你的问题。您正在使用发生此问题的回溯数据表插件。从升级页面引用:If you are upgrading from DataTables 1.9 or earlier, you might notice that a capital D is used to initialise the DataTable here. $().DataTable() returns a DataTables API instance, while $().dataTable() will also initialise a DataTable, but returns a jQuery object.
  • 没有。我的错。我使用了 1.9.0,所以无法检测到这一点。但上述评论中的解释是正确的。
猜你喜欢
相关资源
最近更新 更多
热门标签