JQuery Mobile:仅在后退/前进按钮上禁用页面转换

时间:2015-01-23 12:54:14

标签: javascript jquery ios jquery-mobile back-button

我是JQuery Mobile(1.4.5)的新手,刚刚完成了我的第一个项目。

唯一的问题是iOS7 +上的页面转换(在我的情况下是幻灯片转换)。虽然它们在站点和后退/前进按钮中工作正常,但如果有人在iOS设备的左侧或右侧边缘滑动以浏览浏览器历史记录,则会出现双重转换,因为本机iOS幻灯片和JQM的幻灯片连续发生。这似乎是任何页面转换的问题(除了#34;无"当然)。它甚至发生在JQuery Mobile的演示页面上。我见过其他人报告此问题时没有可靠的解决方案。

由于iOS Safari目前无法检测历史记录滑动事件,我认为下一个最好的方法是关闭转换(设置为'无')但仅在触发后退/前进事件时(我假设它也适用于iOS7 +左/右滑动)。我知道我会在后退/前进按钮上失去转换,但它们仍然可以在网站内工作,这是我愿意做出的妥协。但是,我不确定在JQM的代码中去哪里实现这一目标。

TL; DR:有没有办法将JQuery Mobile页面转换设置为' none'只有当按下浏览器的后退(和/或前进)按钮时才会出现?

1 个答案:

答案 0 :(得分:2)

根据这个article,是的,你可以。使用浏览器按钮时,options.direction会返回backforward。然后将options.transition更改为none

$(document).on("pagecontainerbeforechange", function (e, data) {
  if (data.options.direction == "back" || data.options.direction == "forward") {
      data.options.transition = "none";
  }
});