如何在pageinit上获取新加载的页面?

时间:2014-12-04 10:34:27

标签: jquery-mobile

在第1页,当ajax加载到第2页时,我需要获取第2页的[data-role=page]元素,

但在pageinit(或pagecreate)上,$.mobile.activePage仍为第1页。

如何在pageinit上获取新加载的页面而不是当前页面

$(document).on('pageinit', function () {
    console.log($.mobile.activePage);  // page 1
});

1 个答案:

答案 0 :(得分:0)

如果您只想一次检索它,请使用pagecreate,因为它每页触发一次,并在导航开始之前触发。

$(document).on("pagecreate", function (e) {
  if ( $(e.target).hasClass("ui-dialog") ) {
    var dialog = $(e.target);
  }
});

要在每次导航到它时检索它,您可以使用pageContainer事件。如果您想要更改您未加入的页面,请使用pagecobtainerbeforechange

$(document).on("pagecintainerbeforechange", function (e, data) {
  if ( typeof data.toPage == "object" && typeof data.prevPage != "undefined" && data.toPage.hasClass("ui-dialog") ) {
    data.toPage.find(".foo").addClass(".bar");
  }
});

对于其他事件,以防您只想访问对话框并操纵其标记。

$(document).on("pagecontainerbeforeshow pagecontainershow", function (e, data) {
   if ( data.toPage.hasClass("ui-dialog") ) {
     var dialog = data.toPage;
     /* do something */
});