0

名前に基づいた名前空間で関数を呼び出したい。

おそらくいくつかの背景: 私が望むのは、 $.mobile.loadPage(inStrUrl, { showLoadMsg: false });を介してページを動的にバインドすることです。次に、現在のページに基づいて、読み込まれたページ内の関数を呼び出します。例: 各ページには showFilter 関数があり、イベントは 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

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
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 に答える