Можно ли вызвать changePage () внутри страницы перед событием? - PullRequest
1 голос
/ 31 декабря 2011

Я работаю в файле с именем 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 событии.

...