【问题标题】:Jquery mobile .on("pagebeforecreate") How can I find the id of the page being loaded?Jquery mobile .on("pagebeforecreate") 如何找到正在加载的页面的 id?
【发布时间】:2015-04-04 19:54:44
【问题描述】:

我正在尝试创建一个函数,在发现页面正在加载时,它将从服务器加载 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;

  }
});

【问题讨论】:

  • 是什么将页面标识为唯一的?页面的名称,如标题,或者...?
  • 在 j query mobile 中,每个页面都有一个 id 属性,例如可以通过 href 属性加载。我正在使用该 ID 来识别页面
  • 。例如,我的登录页面由 id login 标识
  • 你在寻找 jQuery( ".selector" ).on( "pagebeforecreate", function( event ) { ... } ) ???可能是您需要更改文档。到这个代码。
  • 因此,如果我使用该选择器而不是文档选择所有 ,那么接下来我应该做什么来提取该标签的特定实例

标签: javascript jquery json jquery-mobile


【解决方案1】:

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

作为“pagebeforecreate”函数的回调函数的事件对象内部,有一个字段表示正在加载的页面的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 调用,则调用必须是同步的,如 async 字段中设置的那样。这是因为调用必须在创建页面之前阻塞和加载数据。如果不这样做,页面将在 javascript 到达并应用样式之前加载。

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签