Jquery mobile .on(“pagebeforecreate”)如何找到正在加载的页面的ID?

时间:2015-02-05 03:45:29

标签: javascript jquery json jquery-mobile

我正在尝试创建一个发现页面正在加载的函数,它将从服务器加载Json,然后在加载Json数据之前更改正在加载的页面中的html。

到目前为止,我已经提出了这个解决方案,但是,我无法找到一种方法来获取正在加载的页面的名称,以确定应该使用哪种类型的数据和html数据注入(页面处理程序) )。

是否有人碰巧知道我可以用来确定" pagebeforecreate"的页面名称/ ID的功能或方法。事件?或者更好的是,在页面加载时执行html注入的更好方法是什么?

$(document).on("pagebeforecreate", function(event) {

  var loadingPage = //NEED FUNCTION FOR PAGE BEING LOADED
    var print = "";

  if (at == "createAccountPage") {
    $.getJSON('http://71.162.197.6/iGotChu/php/listUsers.php', function(jsonData) {
      alert("hello");

    });

    document.getElementById("usersList").innerHTML = print;

  }
});

1 个答案:

答案 0 :(得分:0)

我自己找到了答案。解决方案非常简单,并且没有明确地放在任何Api上,或者至少我无法找到它。

在事件对象内部,它是" pagebeforecreate"的回调函数。 function,有一个字段指示正在加载的页面的id。

$(document).on("pagebeforecreate",function(event){

例如,在此剪辑中,回调函数传递事件对象。您可以使用console.log(event)函数来显示对象的元素。如果我可以发布图片,您可以看到对象的元素。在那里,有一个id字段正在加载页面。有了它,您可以将其用作页面处理程序,以便在创建下一页之前为其执行特定注入。

这是最终的代码。

$(document).on("pagebeforecreate",function(event){
var nextPage = event.target.id;
  var print = "";
            if (nextPage=="createAccountPage"){
                $.ajax({
                  url: '~your URL',
                  dataType: 'json',
                  async: false,
                  success: function(data) {
                    for (i=0;i<10;i++){
                        print = print + "<li><a href='index.html'><img src='images/album-bb.jpg' /><h3>Broken Bells</h3><p>Broken Bells</p></a></li>";
                        } 
                        document.getElementById("usersList").innerHTML = print;
                        print = "";
                    }
                });
            }

        });

**更重要的是,如果您尝试进行JSON调用,则调用必须是异步字段中设置的同步。这是因为调用必须在创建页面之前阻止和加载数据。如果不这样做,页面将在javascript到达之前加载并应用样式。