我正在使用dataTable插件。我解决了这个问题:
table.row不是函数
(使用 D ataTable()代替 d ataTable())
有效:
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返回表对象?真的吗?你可能以其他方式知道吗?
答案 0 :(得分:-1)
在第一个函数中,您传递一些选择器来创建一个新的jQuery对象,而在第二个函数中,您传递一个jQuery对象。所以,我认为问题出现在你的代码的另一行,因为你的第二种方法在这段代码中运行得非常好:
$(document).ready(function() {
function initTable(jqObj, ext)
{
jqObj.dataTable(ext);
}
// call
var table = $('#example');
initTable(table, {"sPaginationType": "full_numbers"});
});