0

我正在用 PhoneGap 编写一个 iPhone 应用程序。我正在尝试解析 Facebook RSS Feed 并使用 jFeed 来执行此操作。我得到了提要,我可以将它显示给用户。然而,当涉及到 RSS 提要的样式以使其看起来不错时(使用 JQuery Mobile CSS 属性),它没有考虑属性(ul 和 li 标记)。有没有办法使用 JQuery Mobile 设置 RSS 提要的样式?这是我正在使用的代码(index.html):

<!DOCTYPE html> 
<html> 
<head> 
<title>BDA Audencia</title> 
<meta charset="utf-8" />
<meta content="yes" name="apple-mobile-web-app-capable">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1,
minimum-scale=1, width=device-width, height=device-height, 
target-densitydpi=device-dpi" />
<!-- JQUERY CSS -->
      <script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
     <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css" />

<!-- CORDOVA - PHONE GAP -->
<script type="text/javascript" src="cordova-2.4.0.js"></script>
<script type="text/javascript" src="js/index.js"></script>
<link rel="stylesheet" href="style/site.css">

<!-- RSS FEED -->
<script type="text/javascript" src="js/jquery.jfeed.pack.js"></script>
      <script>

          jQuery(function() {

                 jQuery.getFeed({
                                url: 'http://www.facebook.com/feeds/page.php?id=360453900718092&format=atom10',
                                success: function(feed) {


                                var html = '';

                                for(var i = 0; i < feed.items.length && i < 5; i++) {

                                var item = feed.items[i];

                                html += '<li data-role="list-divider"><span style=" right: 45px;position: absolute; font-size: 11px; font-weight: bold; padding: .2em .5em; top: 50%; margin-top: -.95em;; right: 10px;">'
                                + item.updated
                                + '</span></li>'
                                + '<li>'
                                + item.description
                                + '</li>';


                                }
                                html += html + '';
                                jQuery('#result').append(html);
                                }    
                                });
                 });

        </script>
    <!-- Changing the position of this code will not make $.mobile.defaultPageTransition work. DO NOT CHANGE IT -->
    <script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>
</head> 
<body>


<div data-role="page" id="index">
<div data-role="header" data-position="fixed">
<h1>Test RSS</h1>
</div>

<div data-role="content">   
        <div class="content-primary">
            <ul data-role="listview" data-theme="d" data-divider-theme="d">
            <div id="result"></div>
                </ul>
                </div>
</div>

<div data-role="footer" data-theme="d">
</div>
</div><!-- /page one -->
4

1 回答 1

1

div直接在里面ul是不正确的 HTML 结构。

<ul data-role="listview" data-theme="d" data-divider-theme="d">
  <div id="result"></div>
</ul>

请按以下方式更改

<ul id="result" data-role="listview" data-theme="d" data-divider-theme="d">
</ul>

然后在jQuery('#result').append(html);此代码之后,添加代码以刷新列表视图。因为 jquery mobile 标记是在 pagecreate 时生成的。在您的情况下,您是动态获取数据并构建列表视图。因此,您必须通过 uisng 刷新列表视图.listview( "refresh" )

修改后的代码应如下:

$('#result').append(html);
$('#result').listview("refresh");

更多关于 jquery mobile 中的列表视图。
参考:http: //jquerymobile.com/demos/1.2.0/docs/lists/lists-methods.html

于 2013-02-28T18:20:33.263 回答