【问题标题】:Load page to a div jQuery Mobile将页面加载到 div jQuery Mobile
【发布时间】:2013-08-28 18:48:11
【问题描述】:

我想通过单击 jQuery Mobile 中的按钮为 div 容器加载另一个文件夹中的页面内容(例如:“files/pages/example.html”)!

怎么做?

<div data-role="page">
     <div id="container" data-role="content"><button id="clickButton">Click me!</button></div>
</div>

【问题讨论】:

  • 我有一个问题。你是在浏览器中测试吗?如果没有,您是否添加了 support.cors 和 allowCrossDomainPages?

标签: jquery-mobile


【解决方案1】:

$.mobile.loadPage 是您需要的方法。它允许您加载外部 html 文件并将其插入到 dom 中。此方法的默认设置是将其作为整个页面加载,因此您必须指定将其加载到 dom 元素中的选项。这是一个示例(未经测试)代码:

$('#clickButton').on("click",function(){
  $.mobile.loadPage("theURLofThePage",{pageContainer: $('#container')})
});

现在,不要忘记跨域安全问题。我设法通过添加以下内容在 Firefox 中完成这项工作:

$("#landingPage").live('pageinit', function() {
            jQuery.support.cors = true;
            $.mobile.allowCrossDomainPages=true;
        });

此外,您正在加载的页面必须包含在 data-role=page div 中(假设它具有 id='secondPage')。加载后,在 data-role=page 上触发 id=secondPage div:

$('#secondPage").trigger('pagecreate');

【讨论】:

  • 发生了什么?代码在哪里?你得到了什么错误?这是执行此操作的标准方法,如果它不起作用,那么您的代码中有一些错误,但是如果您不向我们展示您尝试过什么以及哪些尝试,我(和 SO 社区)当然无法帮助您您在此过程中发现的问题。
  • 对不起。我尝试了我在文章开头给出的代码和你的 jQuery 代码来加载页面(只是从 .on 移动到 .live 并在 loadPage 函数的末尾添加了一个 ';')。没有错误(使用模拟器 iO)并且什么都不做!我尝试在 loadPage 函数后执行“alert(('#container').html())”,但警报说 div #container 为空(警报上不显示任何内容)。
  • 我确定 url 是正确的,因为如果我这样做 "$('#container').load(url);"他做了我想做的事..但失去了css jQuery Mobile的风格!我也尝试在 .load 函数 .trigger('create') 之后使用,但没有成功。
  • 您的第二页包含什么?使用 trigger('create')、trigger('refresh') 或 trigger('pagecreate') 应该为您设置样式
  • 此时(只是为了测试)另一个页面只有一个 jQuery Mobile 风格的按钮 - “”。这些触发器命令都不会更新样式.. 将触发器应用于内容或页面。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多