2个RSS源在一个webapp上

时间:2013-09-26 09:12:55

标签: javascript jquery html jquery-mobile rss

首先关闭一些背景知识,所以我有一个叫做“事件”的页面,它有一个listview:

 <div class="content-primary">
            <ul data-filter="true" data-icons="false" data-role="listview"
            id="linksList" style=
            "white-space:normal; margin-right: -550px; padding-right: 0px;">
            </ul>
        </div>

此列表视图用于填充我的RSS提要阅读器(我将在下面发布以下代码)但这一切都可以使用我的事件页面可以填充我选择的任何RSS源。

当我尝试复制我的代码并为其创建第二页时出现问题。首先我会得到错误:

在初始化之前无法调用listview上的方法;试图调用方法'刷新'

在一些谷歌搜索之后,我发现可以通过改变首先初始化列表视图来修复它 此

$("#linksList").listview("refresh");

到这个

$("#linksList").listview().listview("refresh");

然后返回新错误

未捕获的TypeError:无法读取未定义的属性“jQuery171004728581593371928”

更多错误详情:

未捕获的TypeError:无法读取未定义的属性'jQuery171004728581593371928'的jquery.mobile-1.1.0.min.js:107

a.widget._createSubPages jquery.mobile-1.1.0.min.js:107

a.widget.refresh jquery.mobile-1.1.0.min.js:103

a.widget._create jquery.mobile-1.1.0.min.js:100

a.Widget._createWidget jquery.mobile-1.1.0.min.js:14

a.widget._createWidget jquery.mobile-1.1.0.min.js:17

a。(匿名函数)。(匿名函数)jquery.mobile-1.1.0.min.js:12

(匿名函数)jquery.mobile-1.1.0.min.js:14

e.extend.each jquery-1.7.1.min.js:2

e.fn.e.each jquery-1.7.1.min.js:2

a.fn.(匿名函数)jquery.mobile-1.1.0.min.js:13

(匿名函数)main.js:45

n jquery-1.7.1.min.js:2

o.fireWith jquery-1.7.1.min.js:2

w jquery-1.7.1.min.js:4

d jquery-1.7.1.min.js:4

我的RSS阅读器的JS FIDDLE http://jsfiddle.net/6Ycdm/

最后点击rss Feed中的链接时会填充此页面,只是额外的详细信息等。

<div data-role="page" id="contentPage">
    <div data-role="header" id="header" style="color: white;"><img alt=
    "thread" border="0" id="thread" src="./img/logo2.png" style=
    "width: 220px;"></div>

    <div data-role="content">
        <p id="entryText"></p>
    </div>

    <div>
        <a class="ui-btn-active" data-icon="false" data-rel="back"
        data-role="button" style=
        "background: rgb(24,120,143); color: white;">back</a> 
    </div>

    <div data-position="fixed" data-role="footer" data-theme="a" id=
    "footer">
        <h3>Copyright &copy; 2013 </h3>
    </div><!-- /footer -->
</div> 

我猜想有关webapp的更多细节,任何答案应该能够在手机上运行(使用phonegap构建)我不认为这是一个问题,因为我当前的RSS提要阅读器工作正常。真的只是寻找复制它的方法。我正在使用应用程序上的mutltipage方法,但我不介意添加另一个HTML页面并链接它虽然我已经尝试但无济于事!我得到了同样的错误。

我不知道在您离开活动页面后我是否必须关闭列表视图并转到让我们说“新闻”页面?不知道怎么做。我想是一个可能的解决方案的想法?

感谢您的帮助,我会尽快回复发布的任何答案!

1 个答案:

答案 0 :(得分:3)

  1. 首先,不要使用jQuery Mobile准备好文档,这是一个不好的做法。阅读 here 原因。

  2. 从我在您的代码中使用的是实时方法。 Live已被弃用,虽然它现在正在工作,但当你切换到大于1.8.3的任何jQuery版本时它将无法工作。只需用。上的方法替换它。

  3. 即使没有方法listview的第二次初始化,您的代码也应该可以工作。我认为你真正的问题是你正在使用具有相同id的2个listview。当它们都加载到DOM中时,jQuery将始终访问第一个列表视图。并且因为它已经成功填充,它将抛出此错误。

    有两种方法可以访问正确的列表视图。

    使用此语法查找正确的列表视图:

    $('#PAGE_ID').find('#linksList").listview("refresh");
    

    其中PAGE_ID是当前页面的ID,或者如果您使用pageshow或pagebeforeshow事件来填充listview,请使用以下语法:

    $.mobile.activePage.find('#linksList").listview("refresh");
    

    此解决方案仅适用于pageshow或pagebeforeshow事件(pageinit也可以使用它)。