jQuery モバイル 1.3.2 を使用して、アプリケーションの状態に基づいてデータ テーマを反映するように初期ログイン画面を更新したい PhoneGap アプリケーションがあります。ログインページのhtmlは次のとおりです。
ログインhtml:
<div id="login" data-role="page">
<div data-role="header">
<h1>Survey login</h1>
</div>
<div data-role="content">
<!--div id="logincontent"></div-->
<form id="form-login">
<div data-role="fieldcontain" class="ui-hide-label">
<label for="login-password">Password:</label>
<input type="password" name="login-password" id="login-password" value="" placeholder="Password" />
</div>
<a href="#" id="login-button" data-role="button" onclick="checkLogin()">Login</a>
</form>
</div>
<div data-role="footer" id="login-footer" data-theme="a">
<h4 id="login-footer-header">UIC & EVL</h4>
</div>
</div>
ログインページのテーマを変更するJS関数:
function displayAppStatus(type){
if(type == 'suspend'){
$("#login").page({theme:'g'});
$("#login").trigger('create');
$("#login-footer-header").text("Log in to break suspension");
}
else if(type == 'bedtime'){
$("#login").page({theme:'f'});
$("#login").trigger('create');
$("#login-footer-header").text("Log in to break bedtime");
}
else if(type == 'delay'){
$("#login").page({theme:'h'});
$("#login").trigger('create');
$("#login-footer-header").text("Log in to break delayed notification");
}
//Cancel appStatus display
else if(type == 'cancel'){
$("#login").page({theme:'a'});
$("#login").trigger('create');
$("#login-footer-header").text("UIC & EVL");
}
}
リンクされたスタイルシートとスクリプト(念のため):
<link rel="stylesheet" href="css/main.css" />
<link rel="stylesheet" href="css/themes/ecig/ecig_themes.css" />
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.2/jquery.mobile.structure-1.3.2.css" />
<script src="cordova.js"></script>
<script src="js/jquery-1.10.2.js"></script>
<script src="js/jquery.mobile-1.3.2.js"></script>
また、ユーザーが通知を遅らせたり、通知を一時停止したり、アプリをスリープ状態にしたりした場合は、コード全体で displayAppStatus を呼び出します。
何が起こるかというと、ログイン ページが正しいデータ テーマの色で点滅しますが、ページのテーマはすぐにデフォルトに戻ります。
私はここにいます: JQuery Mobile data-themeを動的に変更 し、 jQuery mobileがページにテーマを動的に追加しました
しかし、これらのスレッドのどちらも私の問題を解決していません。