"pagechange" evento inesperadamente jogados a partir Worklight ou jQuery Mobile
-
21-12-2019 - |
Pergunta
Estou desenvolvendo uma Página Única Hybrid/Cordova
aplicação, com base no IBM Worklight 6.1
e jQuery Mobile 1.4
.
Na minha Página Inicial, eu tenho uma caixa de pop-up que mostra uma senha de entrada e um botão de login.Quando eu toque no botão de início de sessão, o método jQuery (mostrado abaixo) captura o evento de início de sessão e me leva para as Ferramentas de Administração página, como eu esperava.
Até aí tudo bem, mas, de repente, um novo "pagechange" evento é jogado a partir de qualquer Worklight (wljq.js) ou jQuery Mobile (jquery.mobile-1.4.0.js)) e eu ser chutado de volta para a Página Inicial.
Alguém por favor pode me ajudar a descobrir o que está acontecendo?
$('#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", { } );
}
});
Melhores cumprimentos, Magnus.
Solução
Obrigado pelo seu feedback.
O problema agora está resolvido!
O problema estava relacionado com o jQuery Mobile Widget pop-up que queria me levar de volta para a página de onde foi localizado e foi aberto a partir de.É este, talvez, um erro?
Eu resolvi o problema usando o 'afterclose" eventos como mostrado abaixo:
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;
} );