0

我想根据名称调用具有名称空间的函数。

也许有一些背景:我想要的是,通过 $.mobile.loadPage(inStrUrl, { showLoadMsg: false });动态绑定页面 然后,基于当前页面,在加载的页面中调用一个函数。例如:每个页面都有一个 showFilter 函数,Event 附加到一个 main.html 页面,该页面应该调用当前页面中的匹配函数。

我也尝试了一些解决方案,也使用 jquery,但对我没有任何作用。

这是我的功能代码:

function namespace() { }
namespace.showFilter = function () {
        alert("Test");
    }

并希望通过其名称“调用”或“调用”它。这是我至少尝试过的。

$(document).ready(function() {
var fn = window["namespace.showFilter"];
fn();
});

我收到错误TypeError: fn is not a function

这是一个小提琴http://jsfiddle.net/xBCes/1/

4

4 回答 4

2

您可以通过以下方式调用它:

$(document).ready(function() {
    window["namespace"]["showFilter"]();
});

或者

$(document).ready(function() {
    window["namespace"].showFilter();
});

或者

$(document).ready(function() {
    window.namespace.showFilter();
});
于 2013-08-15T14:25:30.263 回答
1

我发现我必须手动将其设置为窗口。

window.namespace = function() { }
window.namespace.showFilter = function () {
            alert("Test");
};

$(document).ready(function() {
    var fn = window["namespace"]["showFilter"];
    fn();
});

http://jsfiddle.net/xBCes/4/

于 2013-08-15T14:29:25.797 回答
0

Like this:

$(function() {
    window.namespace.showFilter();
});

P.S. I shortened the $(document).ready(...)

于 2013-08-15T14:27:24.347 回答
0
function namespace() {}
    namespace.showFilter = function () {
            alert("Test");
        }


$(document).ready(function() {
    var fn = namespace.showFilter();
    fn();
});

http://jsfiddle.net/xBCes/3/

于 2013-08-15T14:27:59.657 回答