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

标签 javascript jquery jquery-mobile cordova ibm-mobilefirst

我正在开发一个基于IBM Worklight 6.1jQuery Mobile 1.4 的单页Hybrid/Cordova 应用程序。

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

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

谁能帮我弄清楚发生了什么?

$('#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", { } );
    }
});

最好的问候, 马格纳斯。

最佳答案

感谢您的反馈。

问题已经解决了!

问题与 jQuery Mobile Popup Widget 相关,它希望将我带回到它所在的页面并从中打开。这可能是一个错误吗?

我通过使用 'afterclose' 事件解决了这个问题,如下所示:

        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;
    } );

关于javascript - Worklight 或 jQuery Mobile 意外抛出 “pagechange” 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23010122/

相关文章:

javascript - 谷歌应用程序脚本循环范围参数

javascript - jQuery 代码片段不适用于页面加载

javascript - 如何使用毫秒计算超过一秒/小时?

jquery - jquery mobile gridview的onclick事件

javascript - 将 typescript 和 javascript 文件集成到同一个项目中

javascript - 缩放 D3 map 时出错

javascript - 函数到达末尾后如何再次运行它?

javascript - 根据选择选项中的值更改 Div Class

c# - 按钮未命中 mvc 中的 javascript 函数

html - 如何在移动网页中嵌入外部网页