21

リストがどこにあるかを動的に<ul data-role="listview">呼び出し、最後に。location.href="#Results"listview('refresh')

これらはすべて、同じページからのAjaxリクエストの成功コールバックで行われます。多かれ少なかれ動作しますが、次のエラーが発生します。

Uncaught cannot call methods on listview prior to initialization; attempted to call method 'refresh'

jQuerymobileはまだリストビューを構築していなかったと思います。何ができますか?

4

7 に答える 7

42

最初にパラメータなしでlistviewメソッドを呼び出すだけです。

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

http://www.gajotres.net/uncaught-error-cannot-call-methods-on-prior-to-initialization-attempted-to-call-method-refresh/から取得したソリューション

于 2013-10-01T08:45:03.100 に答える
28

すでに初期化されているかどうかを確認し、初期化されている場合はリストを更新してください。そうでない場合は、次のようにcreateをトリガーします。

if ( $('#myListview').hasClass('ui-listview')) {
    $('#myListview').listview('refresh');
     } 
else {
    $('#myListview').trigger('create');
     }
于 2012-11-28T10:41:25.570 に答える
14

同じエラーが発生しました。クエリに「:visible」を追加して解決したので、リストが表示されている場合にのみ実行されます。

したがって、コードは次のようになります。

$('#myListview:visible').listview('refresh');

私のためにうまくいきました!

于 2012-07-20T11:56:33.103 に答える
10

http://jquerymobile.com/demos/1.1.0/docs/api/events.htmlpageinit イベントをフックする必要があります。これより前のJQMメソッドを呼び出すことはできません。すなわち:

$('#Results').bind('pageinit', function() {
  $('#myListview').listview('refresh');
});
于 2012-04-29T18:16:10.653 に答える
2

実際 にページをリロードする$.mobile.changePage("#Results");代わりに 使用 して、リストビューが破棄されるようにしますlocation.href
location.href

そしてlistview.refresh

于 2013-08-16T12:10:08.463 に答える
0

listview.refreshを追加するだけで問題なく動作し、ajaxを使用してコンテンツをdivにロードしています。

document.getElementById("myListview").innerHTML = xmlhttp.responseText;
//works fine on my work
$('#myListview').listview('refresh');

私の投稿ならここに。

jquery mobile ajaxがコンテンツをdiv要素にロードすると、cssスタイルが失われます

私は私のポストprobemを解決するためにほぼ3時間を費やします。最後にここで答えを見つけてください。ありがとう。

于 2014-09-07T05:25:39.307 に答える
0

これは私のために働いたものです:

   $(document).delegate('#Results', 'pageshow', function (){
   $('#mylistview').listview('refresh').trigger('create'); 
   });
于 2020-08-25T10:32:06.710 に答える