Jquery Mobile 读取动态列表中的文档

Posted

技术标签:

【中文标题】Jquery Mobile 读取动态列表中的文档【英文标题】:Jquery Mobile read document in dynamic list 【发布时间】:2017-10-11 17:38:46 【问题描述】:

我正在使用 JqueryMobile 开发 Phonegap 应用程序。我想创建一个显示每个元素的动态列表

我有 3 个 html 文件和 1 个 php 文件:index.html > list.html > details.html JS 在 html 文件中。

我使用 jquery-1.6.4.min.js & jquery.mobile-1.4.5.min.js

index.html:

 ...
    HTML
    ...
    <script>
    $(document).ready(function()
     $("#button").click(function()
      $.post("myURL", myparameters, function(data) 
       var obj = jQuery.parseJSON(data);
       for (i = 0; i < obj.length; i++)
         var lista = $("\
         <td style='width:100px;height:100px' >\
          <a href='details.html' id='details' class='details' value='"+obj[i]["id"]+"'>\
           <img style='width:100px;height:100px' src='"+image+"'>\
          </a>\
         </td>");

        list.appendTo("#...");
        
       );
      );
     );
    </script

>

list.html:

...
HTML
...

<script>

$(document).ready(function()
 $(".details").click(function()
   $.post("myURL", myparameters, function(data) 
   
  *Here I load details data*
   );

 );
);
</script>

问题/疑问:

$(document).ready(function)...;仅加载一次动态列表。当我转到其他菜单时,list.html 中的数据消失。

当我点击 list.html 中的某个元素时,jquery 代码不会在 details.html 中加载数据

JQ 1.6.4 和 JQM 1.4.5 还好吗?

我知道我在阅读文档时做错了。我阅读了 JqueryMobile 文档并尝试了其他方法,例如:

$(document).on('pagecreate',function()...

$(document).on('pagebeforecreate',function()...

$(document).on('pageinit',function()...

但没用,所以帮我 JQ 和 JQM D 硕士:

【问题讨论】:

【参考方案1】:

$(document).ready(function)...;只加载一次动态列表。当我 转到其他菜单,list.html 中的数据消失。当我点击一些 list.html 中的元素,jquery 代码不加载 details.html 中的数据

您将所有页面作为 div 插入,并在它们之间进行转换。 这是 jquery 官方文档中关于如何创建“多个 div”并在它们之间切换的示例代码

主体由几个 div 元素组成,这些元素使用 页面小部件。每个这样的页面都有一个 id 属性来区分它 其他页面。

页面可以使用锚点相互链接。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>

<link href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" rel="stylesheet" />

<div data-role="page" id="page1">
  <div data-role="header">
    <h1>Page 1</h1>
  </div>
  <div role="main" class="ui-content">
    <a href="#page2" data-transition="slide" class="ui-btn ui-corner-all ui-btn-inline">Go To Page 2</a>
  </div>
</div>
<div data-role="page" id="page2">
  <div data-role="header">
    <h1>Page 2</h1>
  </div>
  <div role="main" class="ui-content">
    <a href="#page1" data-rel="back" data-transition="slide" class="ui-btn ui-corner-all ui-btn-inline">Go Back To Page 1</a>
  </div>
</div>

由于您使用的是jquery mobile 1.4.5,您可以使用this boilerplate code快速上手

JQ 1.6.4 和 JQM 1.4.5 还好吗?

According to official site,这些是支持 jQuery 1.8 - 1.11 / 2.1 的 jquery 版本。

【讨论】:

首先,感谢 Santosh 的回答。我在 Jquery 上开发不到 6 个月,所以我试图理解所有内容,但我犯了一些错误。然后该代码是一个包含多个文件的文件页?我想要包含 1 页或更多页的多个文件 如果我在它们之间进行转换,我需要其他在 pagechange 时执行 Jquery 的代码。我也尝试了“pagechange”。我仍在努力 @JaimeGarcia 是的,你可以有多个页面,但是你必须在每个 html 中包含 jquery 文件和资产。

以上是关于Jquery Mobile 读取动态列表中的文档的主要内容,如果未能解决你的问题,请参考以下文章

使用淘汰赛动态更新 Jquery Mobile SPA 中的详细信息页面的最佳方法

jQuery Mobile 动态列表视图

使用jquery mobile创建动态下拉列表

动态填充 jQuery Mobile 列表视图内容

自定义列表视图,带有jQuery Mobile中的复选框,图像和按钮

寻找一种将更多列表动态添加到 jQuery Mobile 列表视图底部的方法