2011-12-09 7 views
0

私のプロジェクトをjquerymobile 1.0a1からバージョン1.0に更新しました。JQueryMobile 1.0のLIの動的ロード

動的コンテンツに問題が発生しました。 ajax検索に基づいて、リスト項目で順序付けられていないリストを作成します。

$('#myContent').find("ul").listview(); 
$('#myContent').find("ul").listview('refresh'); 

を、これはもはや動作しているようですが1.0のとおりです。すべてのスタイリングが正しく現れないように、前の次のコードは、リストをリフレッシュし リストが表示されますが、スタイリングはすべて間違っており、すべての要素のデータテーマは無視されます。 誰もが同様の問題を抱えていて、解決策を見つけて解決策を見つけましたか?

答えて

2

Updating lists
If you add items to a listview, you'll need to call the refresh() method on it to update the styles and create any nested lists that are added. For example:

$('#mylist').listview('refresh'); 

Note that the refresh() method only affects new nodes appended to a list. This is done for performance reasons. Any list items already enhanced will be ignored by the refresh process. This means that if you change the contents or attributes on an already enhanced list item, these won't be reflected. If you want a list item to be updated, replace it with fresh markup before calling refresh.

#myContentは、あなたがこれを行うことができますリストビューがある場合:

:#myContentは、あなたがこのような何かを行うことができますページがある場合

$('#myContent').listview('refresh'); 

$('#myContent').trigger('create'); 
あなたは、次のと、コードのあなたの2行を置き換えることによって達成することができる欲しい
0

$('#myContent ul').listview('create'); 

・ホープ、このことができます...

+0

私はLeonの答えが働いているとは思わない。私は絶望でそれを試して、このエラーが発生しました:>リストビューウィジェットインスタンスのためのそのようなメソッド '作成' – DavidHyogo

0

私はしましたこの問題がありました。すべてのことを混乱させている理由は、要素を複数回インアクティブ化してリフレッシュすることです。私は同じ要素上で.listview( 'refresh')を呼び出す2つの異なる関数を実行していることに気付きました。私がテーマを1つ取り出した後、データは正常に見えるように戻った。また、JSエラーを取得していますか?

EDIT: より具体的には、コードのどこかで.listview()を2回呼び出して2回初期化しています。あなたがページをロードしてリフレッシュを実行する前に私は待っていますので、一度呼び出すだけです。

もう1つのことは、要素が既に初期化されているかどうかをチェックすることです。クラスui-listviewが存在するかどうかを確認するには、要素または場合によっては親要素をチェックしてください。

var element = $('#myContent').find('ul');  

if ($(element).hasClass('ui-listview')) { 
    //Element is already initialized 
    $(element).listview('refresh'); 
} else { 
    //Element has not been initiliazed 
    $(element).listview().listview('refresh'); 
} 

ちょうどFYIあなたはそれが通じachivedことCAND $('#myContent').find('ul').listview().listview('refresh');

+0

多かれ少なかれ私が持っている応答のためにありがとういくつかのスタイリングとパディングとマージンすべてが間違っています。 – jkilbride

+0

@jkilbride jsfiddleにコード全体を投稿してください。同様に、その要素に対してdouble initを呼び出す可能性が高いと言われています。 – Bot

0

に見えるように、それらのイベントをチェーンすることができます。

$('#myContent').listview('refresh'); 

The below snippet shows you to load data from xml and dynamically create a list view. 
function loadData() 
{ 
    $.ajax({ 
    url:"BirthdayInvitations.xml", 
    dataType: "xml", 
    success: function(xml) 
    { 
     $(xml).find("event").each(function() 
     { 
     $("#mymenu").append('<li><a href='+ "#" + ' id="a" ">' + this.textContent + ' </a> </li>'); 
     }); 

     $("#mymenu").listview('refresh'); 
    } 
}); 
} 
関連する問題