从Worklight或jQuery Mobile意外抛出“pagechange”事件

时间:2014-04-11 10:32:00

标签: javascript jquery jquery-mobile cordova ibm-mobilefirst

我正在开发基于Hybrid/CordovaIBM Worklight 6.1的单页jQuery Mobile 1.4应用。

在我的主页上,我有一个弹出框,显示密码输入和登录按钮。 当我点击登录按钮时,jQuery方法(如下所示)捕获登录事件并将我带到管理工具页面,正如我所料。

到目前为止一切顺利,但突然间,一个新的“pagechange”事件从Worklight(wljq.js)或jQuery Mobile(jquery.mobile-1.4.0.js)抛出,我被踢回了家页。

任何人都可以帮助我并弄清楚发生了什么吗?

$('#adminToolsLoginButton').on('tap', function() {
    var password = $('#adminToolsPasswordInput').val();
    if (password === adminToolsPassword) {
        $( ":mobile-pagecontainer" ).pagecontainer( "change", "#adminTools", { } );
    } else {
        WL.Logger.debug('Wrong admin password');
        alert('Wrong admin password');
        $( ":mobile-pagecontainer" ).pagecontainer( "change", "#myHome", { } );
    }
});

祝你好运, 马格努斯。

1 个答案:

答案 0 :(得分:1)

感谢您的反馈。

问题现在解决了!

问题与jQuery Mobile弹出窗口小部件有关,它想要带我回到它所在的页面并从中打开。这可能是一个错误吗?

我使用了'后关闭'来解决问题。事件如下所示:

        var isLogin = false;

    $('#adminToolsLoginButton').on('tap', function() {
        var password = $('#adminToolsPasswordInput').val();
        if(password === adminToolsPassword){
            isLogin = true;
        }
        else{
            isLogin = false;
            WL.Logger.debug('Wrong admin password');
            alert('Wrong admin password');
        }
    }); 

    $( "#popupAdminLoginDialog" ).on( "popupafterclose", function( event, ui ) {
        if(isLogin){
            $( ":mobile-pagecontainer" ).pagecontainer( "change", "#adminTools", { } );
        }
        isLogin = false;
    } );