可以在pagebefore事件中调用changePage()吗?

时间:2011-12-31 19:51:51

标签: jquery event-handling jquery-mobile function-calls

我正在使用名为action.js的文件管理我应用中的所有操作。在此文件中,我捕获事件pagebeforechange

这是我的action.js的片段代码:

$(document).bind( "pagebeforechange", function( e, data ) {
    if (typeof data.toPage === 'string') {
        //This is an action
        var urltomatch = data.toPage.match(/action\/(.*)/);
        var action = null;
        if (app.isArray(urltomatch) && urltomatch.length > 0) {
            action = urltomatch[1];
        }

        if (app.isNullOrUndefined(action)) {
            return true;
        }
        switch(action) {
            case 'login':
                //Login action
            case 'logout':
                if (app.logout()) {
                    $.mobile.changePage("pg/static/login");
                }
                e.preventDefault();
                break;
        }
    }
});

我的问题是当我想在$.changePage事件中执行pagebeforechange时,因为这不起作用。

有没有办法做到这一点?

我想这样做是为了在任何地方建立一个前进的功能

function forward(to, options){
    $.mobile.changePage(to, options);
}

我只是通过这种方式来改变data.toPage的价值:

data.toPage = "pg/static/login";

但问题是我想在任何地方调用函数forward,而不仅仅是pagebeforechange事件。

0 个答案:

没有答案