Javascript 部分运行的jQuery ticker磁带脚本

Javascript 部分运行的jQuery ticker磁带脚本,javascript,jquery,Javascript,Jquery,我正在使用一个jsnewsticker插件(),它使用一次显示一个项目 如果将我的项硬编码到HTML中,则下面的代码有效。但是,如果我必须从RSS提要动态创建项(我下面的脚本就是这样做的),那么它就不起作用了 最后一个HTML页面有项,但是JS没有滚动它们。我在控制台中没有收到任何错误。不过,JS正在我的中添加ticker活动类 这可能是一个顺序问题吗?也许JS脚本是在项列表完全呈现之前启动的?如果可能的话,有没有办法检验这个理论 <script src="https://ajax.goo

我正在使用一个jsnewsticker插件(),它使用
  • 一次显示一个项目

    如果将我的
  • 项硬编码到HTML中,则下面的代码有效。但是,如果我必须从RSS提要动态创建
  • 项(我下面的脚本就是这样做的),那么它就不起作用了

    最后一个HTML页面有
  • 项,但是JS没有滚动它们。我在控制台中没有收到任何错误。不过,JS正在我的
    中添加ticker活动类

    这可能是一个顺序问题吗?也许JS脚本是在
  • 项列表完全呈现之前启动的?如果可能的话,有没有办法检验这个理论

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script src="/js/jsnewsticker.js"></script>
    <script type="text/javascript">
    $(document).ready(function() {
        $.get('http://example.com/feed', function (data) {
            var count = 0;
            $(data).find("item").each(function () {
                var newsfeed = $(this);     
                var newstitle = newsfeed.find("title").text();
                var newslink = newsfeed.find("link").text();
    
                var newslist = '';
                if (count < 3) {
                    newslist += '<li class="newsitem">'
                    + '<a href="'
                    + newslink
                    + '">Latest: '
                    + newstitle
                    + '</a>'
                    + '</li>';
                    count++;
                }
    
                $(".latestnews").append(newslist);
            });
    
        });
    
        $('.ticker').Ticker();
    });
    </script>
    
    
    $(文档).ready(函数(){
    $.get('http://example.com/feed,函数(数据){
    var计数=0;
    $(数据)。查找(“项”)。每个(函数(){
    var newsfeed=$(此);
    var newsttitle=newsfeed.find(“title”).text();
    var newslink=newsfeed.find(“link”).text();
    var newslist='';
    如果(计数<3){
    新闻列表+='
  • ' + '' +“
  • ”; 计数++; } $(“.latestnews”).append(新闻列表); }); }); $('.ticker').ticker(); });
    从浏览器源获取的HTML:

    <ul class="latestnews ticker ticker-active">
        <li class="newsitem"><a href="http://example.com">Example</a></li>
        <li class="newsitem"><a href="http://example.com">Example</a></li>
        <li class="newsitem"><a href="http://example.com">Example</a></li>
    </ul>
    

    您之前已经回答了自己的问题。是的,您在
    async
    Ajax
    get
    调用完成之前调用了ticker,因此它会根据空列表触发
    ticker

    您需要在
    get
    中调用它。e、 g.类似于:

    <script src="/js/jsnewsticker.js"></script>
    <script type="text/javascript">
    $(document).ready(function() {
        $.get('http://example.com/feed', function (data) {
            var count = 0;
            $(data).find("item").each(function () {
                var newsfeed = $(this);     
                var newstitle = newsfeed.find("title").text();
                var newslink = newsfeed.find("link").text();
    
                var newslist = '';
                if (count < 3) {
                    newslist += '<li class="newsitem">'
                    + '<a href="'
                    + newslink
                    + '">Latest: '
                    + newstitle
                    + '</a>'
                    + '</li>';
                    count++;
                }
    
                $(".latestnews").append(newslist);
            });
            $('.ticker').Ticker();
        });
    
    });
    </script>
    
    
    $(文档).ready(函数(){
    $.get('http://example.com/feed,函数(数据){
    var计数=0;
    $(数据)。查找(“项”)。每个(函数(){
    var newsfeed=$(此);
    var newsttitle=newsfeed.find(“title”).text();
    var newslink=newsfeed.find(“link”).text();
    var newslist='';
    如果(计数<3){
    新闻列表+='
  • ' + '' +“
  • ”; 计数++; } $(“.latestnews”).append(新闻列表); }); $('.ticker').ticker(); }); });
    谢谢,我怀疑有问题,但不知道如何解决。你的解决方案奏效了,但我不确定它为什么奏效。您的解决方案在循环中调用ticker函数?然而,我的逻辑是让循环完成(从而完成构建
  • ),然后运行ticker函数。。。它之所以有效,是因为它在每次迭代后都启动了自动售票机。我已调整代码:)