0

我目前正在使用一个使用 jive 平台的客户端,该平台只允许我将代码输入到 html 小部件中。我正在尝试从 rss 提要中获取图像并在滑块中输入。

我目前正在使用 mustache 来获取提要并创建模板。那部分我开始工作了。

然后在也可以工作的滑块(在 ul 中)内渲染图像。

问题是滑块有时有效,有时无效。它显示它是一个滑块,但在导航中看不到幻灯片。导航中的 ol 元素中没有附加任何内容。有时我看到它工作,当我重新加载页面时,它停止了。不知道我做错了什么。

这是代码 - 我用别的东西替换了 rss url。 https://jsfiddle.net/cjpbgcn8/

js代码

$(function(){
        var renderNews = function(income){
            var rendObj = []
            $.grep(income, function (n, i) {
                var subject     = $(n).find('title').text(),
                        description = $(n).find('description').text().replace(/\<\!--(.*?)--\>/gi,""),
                        descriptionTrunk = $(description).text().replace(/"/gi,'\\"'),
                        link        = $(n).find('link').text(),
                        image
                if (descriptionTrunk.length > window._config.truncateTo)
                    descriptionTrunk = descriptionTrunk.substring(0,window._config.truncateTo)+"..."
                if( $(description).find('img').length ){
                    image  = $(description).find('img').first().attr('src')
                }else{
                    image = window._config.defaultImage
                }

                rendObj.push({subject: subject, description: descriptionTrunk, link: link, image: image})
            });

            var news = {news: rendObj}

            var tmpl = $('#scr_main').html();
            var out = Mustache.render(tmpl, news);
            $('#content').html(out);
            // $('.image-wrapper').imagefill({target:'.image'});
            resizeMe();
        }


        var getNews = function(){
            return $.Deferred(function(defer) {
                $.ajax({
                    type: 'GET',
                    url: window._config.rss,
                    success: function(json) {
                        defer.resolve(json);
                    },
                    error: function(json) {
                        defer.reject(json);
                    }

                });
            }).promise();
        };

        getNews().always(function(res){
                    var response = $(res).find('item').slice(0,window._config.count);
                    if (response.length == 0){
                        //no results screen
                        var tmpl = $('#scr_nores').html();
                        var out = Mustache.render(tmpl);
                        $('#content').html(out);
                        resizeMe();
                    }

                    else if(response.length){
                        renderNews(response);
                    }

                    else{///error handling
                        var tmpl = $('#scr_error').html();
                        var out = Mustache.render(tmpl);
                        $('#content').html(out);
                        resizeMe();
                    }
                }
            );
        })
4

0 回答 0