首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQueryMobile pagebeforechange获取目标页面id

jQueryMobile pagebeforechange获取目标页面id
EN

Stack Overflow用户
提问于 2012-10-18 02:04:53
回答 2查看 1.3K关注 0票数 0

我有一些控件,这些控件在每个站点上都可见。为了将这些控件移动到当前活动的页面,我使用了pagebeforechange事件。

代码语言:javascript
运行
复制
$(document).bind('pagebeforechange',function(e,data) {
  var topageid=$(data.toPage).attr('id'); //MY QUESTION IS ON THIS LINE
  console.log("Changing page to "+topageid);
  $header = $('#myheader');
  $footer = $('#myfooter');
  $header.detach();
  $footer.detach();
  $header.prependTo(topageid);
  $footer.appendTo(topageid);
 });

上面显示的源代码有时工作,有时不工作。这是因为data.toPage有时只包含一个像...index.html#mypage这样的url。在任何情况下如何检测toPage的id?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-18 02:36:40

您可以使用pagebeforeshow事件而不是pagebeforechange事件。不同之处在于,前者在将外部页面添加到DOM之后触发,而后者在此之前触发。

还有其他页面事件可以为您工作:http://jquerymobile.com/demos/1.2.0/docs/api/events.html

来自文档(链接到上面):

pagebeforechange

此事件在任何页面加载或转换之前触发。

pagebeforeshow

在实际的转换动画开始之前,在我们要转换到的"toPage“上触发。

票数 1
EN

Stack Overflow用户

发布于 2013-12-16 18:58:44

pagebeforechange事件被触发两次,第一次是在加载目标页面之前,也就是获取包含data.toPage的时候。第二次触发事件时,将加载目标页面,在这种情况下,您将获得一个包含data.toPage中页面DOM的查询对象。如果你想坚持使用pagebeforechange事件,那么你可以这样做:

代码语言:javascript
运行
复制
if (typeof data.toPage != "string") {
    ... Do your stuff ...
}

如果您对要使用的事件很灵活,那么请遵循Jasper的建议,并使用pagebeforeshow,这将允许您在页面转换到之前修改分离页面的DOM。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12940527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档