我正在开发一个基于IBM Worklight 6.1
和jQuery 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/