我正在开发单页应用程序,到目前为止我已经成功创建了一个可以让我在页面之间切换的系统,现在我想我需要一种方法来打开某个页面时调用特定的功能。
对于每个页面,我声明了function
,例如#page1
有page1_func
,#page2
有page2_func
,依此类推。
页面都以这种方式存储
var appPages = {
"page1": {
"id": "#page1",
"title": "Page 1 Title",
"callback": page1_func
},
"page2": {
"id": "#page2",
"title": "Page 2 Title",
"callback": page2_func
}
};
另一个负责导航的功能,在调用时会获取有关该页面的信息,即其title
和id
来更新DOM。
我还希望该功能能够实际调用页面的callback
属性中的函数。
function NavigateToPage( page ) {
..
..
appPages[ page ].callback( "some args" );
}
然而,这并不起作用,因为我在脚本的末尾声明了函数,但据我所知,在结尾或开头声明一个函数它并不重要,它总是可用的虽然在我的情况下,控制台告诉我page1_func
没有定义。
我需要帮助来更好地解决这个问题
答案 0 :(得分:2)
这是有效的。
const appPages = {
page1: {
id: '#page1',
title: 'Page 1 Title',
callback: page1_fn,
},
page2: {
id: '#page2',
title: 'Page 2 Title',
callback: page2_fn,
}
};
function triggerCallback(page) {
appPages[page].callback('args...');
}
triggerCallback('page1');
function page1_fn(arg) {
document.write(arg);
}
function page2_fn(arg) {
document.write(arg);
}