如何使用jQuery Mobile阻止链接添加到历史堆栈中

使用jQuery mobile,我使用列表视图,其中包含上一页和下一页的分页链接。 一切正常,但我不希望将prev和next页面添加到历史堆栈中。 这个想法是回击将只到实际的前一页。

我发现这样做的唯一方法是将data-rel =“dialog”添加到a标签中,但我不希望它是一个弹出对话框。

否则我试着添加

$.mobile.nonHistorySelectors="dialog,pagination" 

到mobileinit事件,将属性data-rel =“pagination”添加到a标签。 但是这只会在单击链接时抛出错误(即使没有将nonHistorySelectors添加到mobileinit事件,也会发生错误)。

编辑:

我发现的最接近的是这个JS

  $(".page-prev").click(function(e) { e.stopPropagation(); e.preventDefault(); $.mobile.changePage(this.href, {changeHash:false, reverse:true}); }); $(".page-next").click(function(e) { e.stopPropagation(); e.preventDefault(); $.mobile.changePage(this.href, {changeHash:false}); });  

和这个HTML

 Prev Next 

这似乎很好地保持浏览器历史记录不被更新,但有时当点击下一页时,滑动的页面会做一些时髦的事情,例如加载/滑动两次。 此外,它没有做到的一件事是,如果我从这里导航到一个页面并返回,它将在第1页返回。

这样做应该没问题:

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

没有机制可以从浏览历史记录中静默删除任何内容。

您应该使用AJAX填充列表。 所以你的链接看起来像

是否可以将data-rel="back"到锚标记?

这是jQuery Mobile演示文档中建议的解决方案,在“返回链接”下。

http://jquerymobile.com/demos/1.0b1/#/demos/1.0b1/docs/pages/docs-pages.html

我有同样的问题,我的解决方案是将网站导航和分页导航分成两个单独的导航菜单。 所以我有网站导航的标题导航,并将下一个/上一个导航按钮添加到页面:下一页/上一页的AJAX请求帮助

实例:

更新:

这是我的意思的一个快速例子:

JS:

 var currentPage=1; loadCurrentPage(); $("#next, #prev").click(function(){ currentPage= ($(this).attr('id')=='next') ? currentPage + 1 : currentPage - 1; if (currentPage==0) currentPage=1; else if (currentPage==101) currentPage=100; else loadCurrentPage(); }); function loadCurrentPage(){ //$('input').attr('disabled','disabled'); $('#displayResults').html(''); $.ajax({ url: '/echo/html/', data: 'html=Current Page: ' + currentPage+'&delay=1', type: 'POST', success: function (data) { // $('input').attr('disabled',''); $('#displayResults').html(data); } }); $('#home').page(); } 

HTML:

 

data-rel attr对我有用

  

根据文档

链接链接(包括具有data-role =“按钮”的链接链接)和表单提交按钮共享这些属性

data-rel back(在历史记录中向后移动一步)

对话框 (打开样式为对话框的链接,未在历史记录中跟踪)

外部 (用于链接到另一个域)

https://demos.jquerymobile.com/1.0/docs/pages/page-links.html