4

问题

我有一个预制的 js 文件(我不完全理解),它被导入到我的 html 页面。这个 js 文件定义了一个函数,我希望能够通过 html 页面本身中的脚本块调用该函数。

我想调用的函数是app.openNav. 我尝试使用各种不同的方法来调用此函数(window.App.app.openNav, App.app.openNav, App.openNav, app.openNav, even window.openNav)均无济于事。

我未能通过这些方法调用该函数使我认为也许我需要在顶级函数之外定义它(使其成为全局?)。我试着这样说,app.openNav = {};但这也不起作用。

这是在nav.js中:

(function(window, document, undefined)
{
    window.App = (function()
    {    
        var app = { };

        app.init = function()
        {
            app.openNav = function()
            {
                //open navigation
            };

            // open nav with button
            document.getElementById('foo').addEventListener('click',app.openNav,false);
        };
        return app;
    })();
    if (window.addEventListener) {
        window.addEventListener('DOMContentLoaded', window.App.init, false);
    }
})(window, window.document);

如您所见,我目前有一种通过在 html 对象上使用app.openNavnav.js内部调用的方法。addEventListener但是,我使用外部库 ( hammer.js ) 来解释我想用来打开导航的事件。

问题

是否可以从nav.js外部调用该app.openNav函数? 如果是这样,我将如何去做?

4

1 回答 1

3

根据您的代码,它可以作为App.openNav.

现场演示: http: //jsfiddle.net/simevidas/6N3dZ/(等待 2 秒以显示警报。)

于 2013-09-14T01:02:08.400 回答