【问题标题】:How can I control the back button event in jQuery Mobile?如何在 jQuery Mobile 中控制后退按钮事件?
【发布时间】:2013-08-15 05:45:26
【问题描述】:

我试图控制后退按钮,但我不能。在这里;

Take control of the hardware back button using jQuery Mobile

  event.keyCode == 27 // That’s for escape
  event.keyCode == 8 // That’s for backspace...it's also working on browser, but it doesn’t work on my tablet.

我该怎么做?

【问题讨论】:

标签: javascript jquery-mobile jquery keycode


【解决方案1】:

推荐方法pagecontainerbeforechangehttps://jqmtricks.wordpress.com/2014/12/01/detect-back-navigation/


你需要监听navigation事件和state.direction

$(window).on("navigate", function (event, data) {
  var direction = data.state.direction;
  if (direction == 'back') {
    // Do something
  }
  if (direction == 'forward') {
    // Do something else
  }
});

jQuery Mobile API: Navigation event

Demo

【讨论】:

  • data.state.direction 在 Chrome 中(在桌面上)对我来说是未定义的,但在其他方面效果很好!谢谢
  • @Omar 你会说使用pagecontainerbeforechange 比使用navigate 更好吗,因为它的范围更广?
  • @Adjit 是的,好多了。
【解决方案2】:

你可以做到这一点没有jQuery Mobile

window.addEventListener("hashchange", function(e) {
    if(e.oldURL.length > e.newURL.length)
        alert("back")
});
<a href="#p2">goto page 2</a> and then use browser's navigation.</div>

还有Demo in CodePen

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多