如何控制 jQuery Mobile 中的后退按钮事件?

IT技术 javascript jquery-mobile jquery keycode
2021-02-05 11:07:28

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

使用 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.

我该怎么做?

2个回答

推荐方法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: 导航事件

演示

@Adjit 是的,好多了。
2021-03-19 11:07:28
2021-03-22 11:07:28
data.state.direction 在 Chrome(在桌面上)中对我来说是未定义的,但除此之外效果很好!谢谢
2021-04-02 11:07:28
@Omar 你会说最好使用pagecontainerbeforechangeovernavigate因为它的范围更广吗?
2021-04-11 11:07:28

你可以在没有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>

还有CodePen 中的演示