我正在开发基于Hybrid/Cordova
和IBM 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", { } );
}
});
祝你好运, 马格努斯。
答案 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;
} );