【问题标题】:JQuery Mobile Page ScriptsJQuery 移动页面脚本
【发布时间】:2014-03-11 07:24:37
【问题描述】:

我有一个脚本需要在加载特定页面时运行。但它需要在 JQM 完成它的工作并增强页面之后运行。

我将脚本标签放在页面的 div 中,效果很好。

但是,如果我绑定到 pageshow,那么我的脚本也会针对之后显示的每个页面运行,这不是我想要的。

在 JQM 初始化完成后,放置我的脚本以便每次加载此页面运行一次的正确位置在哪里?

【问题讨论】:

  • 请注意,pageshow 已弃用并将在 1.5 中删除,请改用 pagecontainershow。但是,新事件不能绑定到特定页面,它们会在每个页面上触发。提供该页面和 ID,然后在该事件中获取活动页面的 ID。比较结果并运行您的代码。

标签: javascript jquery-mobile


【解决方案1】:

大部分 jQuery Mobile 页面事件 已被弃用并被 pageContainer 事件取代。这些新事件不能直接附加到页面,它们在$.mobile.pageContainer 上被省略。

pageshow 等价于pagecontainershow,使用该事件来检索活动页面的 ID。将检索到的 ID 与您的特殊页面的 ID 进行比较,并相应地运行代码。

$(document).on("pagecontainershow", function () {
  var activePage = $.mobile.pageContainer.pagecontainer("getActivePage")[0].id;
  if(activePage == "pageX") {
    /* code */
  }
});

【讨论】:

  • 我的处理程序不会多次附加以重新加载页面吗?
  • @jeff 会的。如果要添加侦听器,则需要先.off(),然后再.on(),以消除多次代码执行。
猜你喜欢
  • 2013-09-19
  • 1970-01-01
  • 2013-10-13
  • 1970-01-01
  • 1970-01-01
  • 2011-11-02
  • 1970-01-01
  • 2013-09-09
  • 1970-01-01
相关资源
最近更新 更多