jQuery Mobileを使用してwebappを作成しています。このメソッドは、localStorageにレコードをロードし、ページが最初のときにリモートJSONファイルからリストビューを作成する関数を呼び出します(ページのlive.pagecreate()
イベントを使用して)作成されました。この関数の冒頭には、jQuery Mobileメソッド$.mobile.showPageLoadingMsg()
と$.mobile.hidePageLoadingMsg()
が関数の最後にあります。jQuery Mobile showPageLoadingMsg()/ hidePageLoadingMsg()メソッドが初期ページで機能しないloadn
最初のページ作成時に、読み込みメッセージが表示されません(iOS 4.3 Safari、Chrome 13、Firefox 5のiPhone 4)。しかし、私はまた、ページにリフレッシュボタンを持っています。このボタンは、localStorage内の関連するレコードをクリアしてから、最初にlistviewに入力するのと同じ関数を呼び出します。ただし、同じ機能をリフレッシュボタンから呼び出すと、showPageLoadingMsg()
とhidePageLoadingMsg()
が正しく動作し、読み込み画面が表示され、消えます。私はここに何かを逃していますか
ETAここにコードの要点があります(実際のコードの前には必要ありませんが、今夜はそれを入れます)。また、私は.ready(文書)でshowPageLoadingMsgを置くことを試みたとmobileinitにバインドしようとしたことを言及しておらず、どちらも働いている必要があります:最初のページの間に呼び出されるこれらのハンドラのために
function loadListView(){
$.mobile.showPageLoadingMsg();
//ajax call to pull JSON
//$.each loop to load localStorage and listview
$.listview.refresh('list');
$.mobile.hidePageLoadingMsg();
}
$(#listpage).live('pagecreate', function(event){
loadListView(); // showPageLoadingMsg() and hidePageLoadingMsg do not work when the function is called here
});
function clearList(){
//for loop that clears each item in localStorage that matches the key prefix set in loadListView
}
//runs when refresh button is clicked
$('listrefresh').live('click',function(){
clearList();
loadListView(); //showPageLoadingMsg() and hidePageLoadingMsg() work when the function is called here
});
質問を編集して試したコードを追加できますか? –
@Phill私は上記の一般的なコードを追加しました。必要に応じて、私は後でその前にいるときに実際のコードを追加することができます。 – scottoliver
ちょうど指摘すると、あなたはこれを使うべきではなく、.clickを使うべきではありません。 $( 'listrefresh')。live( 'click'、function(){/ *ここにあなたのコード* /}); jquery mobileベータ版を使用している場合は、1.クリックの代わりにvclickを使用してください。 – root