2011-09-13 67 views
2

使用JQMobile构建移动网站。由于项目的规模,我决定采用多页面方式(多个html文件)。不过,我正在构建的其中一个页面更适合作为具有多个div的html文件。为了加载这些多个div,我不得不使用rel="external"data-ajax="false",以便它将所有的div与data-role="page"并列,而不仅仅是页面上的第一个div。但是,这会打破JQMobile的历史记录,并在使用data-add-back-btn="true"时不再显示后退按钮。JQuery Mobile data-ajax = false的历史记录

有没有人知道一个解决方案来拉多个div而不强制完全重新加载页面?或者将两种模式混合使用而保留JQMobile上的历史?

+0

您正在使用的jQM版本?也许一些代码如何实现它哦jsfiddle.net –

+0

我正在使用JQM 1.0b3 – avivas

+0

我正在使用JQM 1.0b3。另外,尽管我将它添加到了[jsfiddle](http://jsfiddle.net/bfpN8/2/),但它很难,因为我有多个html文件。问题是,ajax方法只用data-role =“page”来拉第一个div,但我需要这个外部html页面中的一个具有多个div,但是当我这样做时,后退按钮不会呈现。 – avivas

回答

2

工作实施例:

主HTML

<div data-role="page"> 
    <div data-role="header"> 
     <h1>Demo Page</h1> 
    </div><!-- /header --> 
    <div data-role="content"> 
     <h2>Lorem Ipsum</h2> 
     <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque semper feugiat condimentum. Donec rutrum lectus tortor, et pharetra sapien. Sed sollicitudin lectus sed urna consectetur sagittis. Pellentesque at arcu dui. Curabitur molestie velit id neque mattis vestibulum. Sed sit amet ante at tellus volutpat tempor quis eu magna. Pellentesque elementum semper congue. Praesent vitae eros id ante dapibus commodo. Aliquam leo nisi, feugiat eu imperdiet sed, tincidunt in lacus. Praesent bibendum dapibus vestibulum. Fusce condimentum bibendum libero eu aliquet.</p> 
     <ul data-role="listview" data-dividertheme="d" style="margin-top: 0;"> 
      <li><a href="http://jsfiddle.net/phillpafford/rGacN/4/embedded/result/" rel="external" data-transidiont="slide">Link 1 (External)</a></li> 
      <li><a href="#internal">Internal Link1</a></li> 
      <li><a href="#internal2">Internal Link2</a></li> 
      <li><a href="#internal3">Internal Link3</a></li> 
     </ul> 
    </div><!-- /content --> 
</div><!-- /page -->  

外部HTML

<div data-role="page"> 
    <div data-role="header"> 
     <a data-rel="back">Back</a> <!-- Here you add the data-rel --> 
     <h1>External Demo Page</h1> 
    </div><!-- /header --> 
    <div data-role="content"> 
     <h2>Lorem Ipsum</h2> 
     <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque semper feugiat condimentum. Donec rutrum lectus tortor, et pharetra sapien. Sed sollicitudin lectus sed urna consectetur sagittis. Pellentesque at arcu dui. Curabitur molestie velit id neque mattis vestibulum. Sed sit amet ante at tellus volutpat tempor quis eu magna. Pellentesque elementum semper congue. Praesent vitae eros id ante dapibus commodo. Aliquam leo nisi, feugiat eu imperdiet sed, tincidunt in lacus. Praesent bibendum dapibus vestibulum. Fusce condimentum bibendum libero eu aliquet.</p> 
    </div><!-- /content --> 
</div><!-- /page -->  
+0

谢谢你的例子;我现在遇到的问题是,当我从外部页面回来时,上一页上的后退按钮不再出现。让我解释一个场景: 当我用链接rel =“external”访问这个页面时,我访问了多个“页面”并生成了一个历史记录,因为这些页面有'data-add-back- btn =“true”标志。但是,在导航到外部并返回后,后退按钮不再存在。 – avivas

+0

你可以给你的代码链接? –

+1

如果您想返回,只需将data-rel属性添加到您需要的每个导航/标题页面即可。我已经添加了另一个例子来展示这一点。浏览所有页面,最后一页也是外部页面:http://jsfiddle.net/phillpafford/bfpN8/14/ –