获取在 jquery mobile 中创建的页面

Posted

技术标签:

【中文标题】获取在 jquery mobile 中创建的页面【英文标题】:Get the page being created in jquery mobile 【发布时间】:2019-03-02 00:42:03 【问题描述】:

我使用的是 jQuery mobile 1.4.5

我将以下事件添加到文档中:

$(document).on("pagecreate", function (e) 

);

当要查看新页面时触发事件,我的问题是如何获取正在创建的页面的 id? $.mobile.activePage 未定义,页面容器小部件的 getActivePage() 抛出错误:

无法在初始化之前调用 pagecontainer 上的方法;试图调用方法“getActivePage”

感谢任何帮助。

编辑:

我用过:

$.mobile.pageContainer.pagecontainer("getActivePage")[0].id

它不会抛出错误,但它返回当前页面的 id 而不是要创建的页面,有什么建议吗?

【问题讨论】:

如何获取页面的id?? id 属于页面中的任何元素,而不是页面本身。 如果你的意思是bodyid,那么body标签不需要任何id,因为在任何有效的body标签中只存在一个body标签页面。 jquery mobile有一个dive with page角色,动态添加到DOM中,事件对应这个事件 页面的id是怎么设置的?? 查看 jquery 移动文档 【参考方案1】:

查看event.target,这是一个演示

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
  <link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
  <script src="https://code.jquery.com/jquery-1.11.2.min.js"></script>
  <script>
    $(document).on('mobileinit', function () 
      function showme(e, ui)
        var activePage = $(":mobile-pagecontainer").pagecontainer("getActivePage").prop("id");
        $("#events").append("Event: "+e.type+" raised from: "+(activePage ? activePage : 'landing')+"<br>"); 
        if(activePage) 
          $("#events").append("Active Page: "+activePage+"<br>"); 
         
        if(e.target)
          if(e.target.id)
            $("#events").append("Target Page: "+e.target.id+"<br>") 
         
       
      $(document).on("pagecreate", function(e, ui)  showme(e, ui); ); 
    );
  </script>
  <script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
</head>
<body>
  <div data-role="page" id="page-1">
    <div data-role="header"><h1>Page 1</h1>
    <a href="#page-2" class="ui-btn ui-corner-all ui-btn-inline ui-mini">Go to Page 2</a>
    </div>
    <div role="main" class="ui-content">
      <div id="events">
      </div>
      <hr>
      Click "Go to page 2"
    </div>
  </div>
  <div data-role="page" id="page-2">
    <div data-role="header"><h1>Page 2</h1>
    <a href="#page-1" class="ui-btn ui-corner-all ui-btn-inline ui-mini">Back to Page 1</a>
    </div>
    <div role="main" class="ui-content">
      Page 2 has been created - Click back
    </div>
  </div>
</body>
</html>

【讨论】:

以上是关于获取在 jquery mobile 中创建的页面的主要内容,如果未能解决你的问题,请参考以下文章

jQuery Mobile 面板在页面完全加载之前在初始加载时显示,速度较慢的设备

JQuery mobile 在应用程序中创建单个页面

在jQuery Mobile中创建动态对话框页面

在 HTML 页面或模板中使用 Django-REST-Framework 从在 Django 中创建的 API 获取/显示 API 数据

如何在 jQuery Mobile 1.4.5 中获取当前页面 URL?

在页面之间导航后如何在jquery mobile中停止重复数据