在我的JavaScript文档的顶部,我有一个switch()
函数 - 基于用户所在的当前页面 - 声明要加载哪些JS函数,要触发哪些插件等等。 / p>
现在,在我的例子中,我们会在页面index
上说我。当用户在索引页面上时,我会触发一个名为DataTables的插件(你可能知道它)。我在我的交换机功能中包含了插件调用的简化版本。
在switch函数中我还创建了一个名为refreshDataTable()
的函数 - 这就是这个问题的关键 - 它应该刷新表。
$(document).ready(function(){
var currentPage = ...
switch (currentPage) {
case 'index':
var table = $('#table').DataTable( {
ajax: "data.json"
// and many more parameters
} );
function refreshDataTable() {
table.ajax.reload();
}
break;
}
});
// try to call function here, not working
refreshDataTable();
到目前为止,插件按预期加载,refreshDataTable()
可以从switch()
函数中访问。
现在,问题是我需要从refreshDataTable()
函数外部调用switch()
函数。每当我尝试这样做时都会出现错误,说该功能不存在。
有没有人知道如何从switch()
之外访问此函数而无需再次触发整个DataTables插件?
提前谢谢!
更新:我注意到这不起作用,因为switch()
包含在document.ready
函数中。为什么?简单地删除document.ready
函数会不会效率低下?
答案 0 :(得分:1)
尝试编写这样的代码,
(function(){
var table;
function refreshDataTable() {
if(table && table.length) {
table.ajax.reload();
}
}
$(document).ready(function(){
var currentPage = ...
switch (currentPage) {
case 'index':
table = $('#table').DataTable( {
ajax: "data.json"
// and many more parameters
});
break;
}
});
refreshDataTable();
}();