尝试将carousel jquery插件与RSS解析器结合使用

时间:2013-11-06 21:30:22

标签: javascript jquery carousel

我有一些尺寸有限的数字标牌,所以我需要能够将可变高度的非静态内容慢慢爬上屏幕。我正在使用两个单独的插件来处理内容滚动和内容解析。最初我使用的两个函数都是作为匿名函数编写的,但我将它们转换为对象的方法,以便稍后添加一些额外的功能。

我已经独立测试了这两种方法,但它们都有效。但是,将两者结合起来会导致最终内容无法按预期滚动。我用演示代码创建了一些小提琴:

  1. functioning scrollfeed() method, using filler text

  2. non-functioning combo of getfeed() and scrollfeed()

  3. (第二个小提琴的第6版验证getfeed()方法本身是否有效)

    我还测试了3个独立的RSS源,它们具有非常不同的内容结构,并且getfeed()方法在每个实例中都有效。

    如果有人能提供任何见解,我将非常感激。我的JavaScript技能有限。

    var remoteFeedManager = {
        getfeed: function () {
            $('#feed').feeds({
                feeds: {
                    calendar: 'http://rss.cnn.com/rss/cnn_tech.rss'
                },
                entryTemplate: '<div class="feed-entry">' +
                    '<h4 class="feed-entry-title"><!=title!></h4>' +
                //'<div class="feed-entry-date"><!=publishedDate!></div>' +
                '<p class="feed-entry-content"><!=content!></p>' +
                    '</div>',
                preprocess: function (feed) {
                    // Inside the callback 'this' corresponds to the entry being processed
                    // Remove CDATA tags from feed
                    this.content.replace("<![CDATA[", "");
                    this.content.replace("]]>", "");
                }
            });
    
        },
        scrollfeed: function () {
            $(".verticalscroller").carouFredSel({
                direction: "up",
                align: "top",
                width: 517,
                height: 100,
                auto: {
                    easing: "linear",
                    timeoutDuration: 0,
                    duration: 10000
                }
            });
        }
    };
    remoteFeedManager.getfeed();
    remoteFeedManager.scrollfeed();
    

1 个答案:

答案 0 :(得分:0)

看起来getfeed操作是一个异步操作,在您调用scrollfeed时尚未完成加载RSS提要。我不确定您使用的是什么插件,但是看看是否存在某种类型的事件在RSS源完成加载时调用已定义的函数。如果是这样,您可以将其设置为调用scrollfeed函数。