0

Html ページには、data-role = page as page1、page2 などの複数のページが含まれています。次のコードを使用して、page1 のページロード中に JS メソッドを呼び出そうとしています。

$("#page1").on("load",function () {
  alert("hi")
  $.ajax({
          type: "GET",
          url: "",
          data: "{}",
          contentType: "application/json",
          dataType:"json", 
          success:  function (msg) {
                                    var BPRList = '';
                                    $.each(msg, function(i,v){  
                                      BPRList += '<li onClick="GetBprDetails('+ v.BPRNo +')"><a href="#bprPage" data-transition="slide"><p class="title">' + v.BPRNo + '</p><p class="bodyEle">' + v.BPR_Product +'</p><p class="bodyEle">' + v.BPR_Details+ '</p><br/><p class="bodyEle">' + v.BPR_Status + ':</p></a></li>'     
                                                             })         
                                   $("#BPRListTable").html(BPRList)
                                   $('[data-role=listview]').listview('refresh');
                                   },
           error:    function () {
                                   alert("BPR List Error");
                                 }
        }); });

上記の関数の実行中、フォームロード中に出力を取得できません。ボタン クリック イベントとして上記のメソッドを呼び出すかのように、出力を取得できます。上記のコードで何が間違っているのでしょうか..次のコードではもっと心配です。

$("#page1").on("load",function () {
 --statements
})
4

4 に答える 4

1
 $(window).load(function () {
   alert("hi")
 });

ページの読み込み時に結果が必要な場合は、代わりにこれを試してください。このコードを外部に記述します $(document).ready(function(){});

于 2013-08-07T13:51:23.087 に答える
1

見つけた解決策

 $(document).ready(function(){
 $(document).on('pagebeforeshow','#page1',function () {
                                                           --statements
                                                          }); });
于 2013-08-07T14:13:22.913 に答える
0

pageinit を使用しても問題ないと思います

$(document).on('pageinit', '#page1', function() {...})

このようにして、jquery モバイルでも推奨されていない document.ready の使用を回避します。

于 2013-08-07T14:39:26.480 に答える