【问题标题】:Jquery mobile changepage with back button not working带有后退按钮的Jquery移动更改页面不起作用
【发布时间】:2013-06-07 08:16:50
【问题描述】:

我的 JQM 主 HTML 文件中有 4 个页面。当我使用 changepage 切换到一个时,第一次很好,但我使用 data-rel=back 按钮返回,这会切换到上一页,但随后会弹回具有后退按钮的页面。我应该不使用 data-rel=back 吗?如果没有,还有什么选择?

使用 JQM 1.3.1

$("#listView").on("vclick","li", function(e) {  
  //ajax call to get results for second page
  $.mobile.changePage('#second');
}

第二页按钮

<a href="#" data-rel="back">Back</a>

【问题讨论】:

  • 您也可以使用 $.mobile.back() 以编程方式执行此操作..
  • 我会试试的,不过我认为它会是一样的。
  • 你可能是对的,但尝试没有坏处:-)
  • 当你添加 mobile.back 修复时,也试试这个:$.mobile.activePage.prev('[data-role=page]').. 当你'正在单击该链接.. 这将告诉您您的上一页是什么.. 然后您可以更改页面到该页面 如果 mobile.back 不起作用..
  • 奇怪的是它第一次运行良好。列表中的第二个选项切换然后打破后退按钮。

标签: javascript jquery jquery-mobile


【解决方案1】:

要以编程方式转到上一页,请使用以下代码。您还需要使用stopImmediatePropagation(); 来阻止jQuery Mobile 跳转两次,这将导致显示相同的页面。

编辑:我在 iPad 上测试过,preventDefault() 也是必需的。

Demo

$(document).on('vclick', '[data-rel=back]', function (e) {
 e.stopImmediatePropagation();
 e.preventDefault();
 var back = $.mobile.activePage.prev('[data-role=page]');
  $.mobile.changePage(back, { 
    transition: 'slide',
    reverse: true });
});

【讨论】:

    【解决方案2】:

    使用这个。您可以使用 location.hash=" " 在页面之间重定向,其中包含页面 ID。

    演示http://jsfiddle.net/yeyene/uJz3E/7/

    $("#listView").on("vclick","li", function(e) {  
      // second is the page you want to redirect on click.
      location.hash = "second";
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-07
      • 1970-01-01
      • 1970-01-01
      • 2012-01-26
      相关资源
      最近更新 更多