私は、JQuery Mobile 1.2 と php を使用して Web アプリに取り組んでいます。プロファイル ページから、ユーザーにログアウトの確認を求めるポップアップが表示されます。私がやりたいのは、クリックイベントでそのボタンをインターセプトして、ajaxリクエストを介してログアウトを処理することです。
すべてのプロジェクト ページに custom.js ファイルが含まれています。アプリがアカウント ページに読み込まれます。私はそれがロードされ、ajax ナビゲーション全体で動作していることを知っています。このコードを custom.js に含めると、次のようになります。
$("#perfil").live('pageshow',function(event){
alert('This page was just enhanced by jQuery Mobile!');
});
プロフィール ページが表示されたときにアラートが表示されます。問題はクリック機能です。
これを含めると:
$("#perfil").live('pageshow',function(event){
alert('This page was just enhanced by jQuery Mobile!');
$('#logoutButton').click(function(){
$('#output').html('Logging Out...');
$.get("api/logout",function(data){
if(data.success) {
window.location = "index"
}
else{
$('#output').html('Logout failed. Try again');
}
}, "json");
});
});
振る舞いは奇妙です。メイン ページからプロファイル ページに移動すると、アラートが表示されます。しかし、ボタンが反応しません。ただし、更新すると (または最初にプロファイル ページからアプリをロードすると)、ボタンは正しく動作し、javascript ログアウト機能が実行されます。
html ボタンのコードは次のとおりです。
<a id="logoutButton" data-role="button" data-icon="check"
data-inline="true" data-theme="e">Si, finalizar.</a>