Javascript 使用全局变量链接头的JQuery

Javascript 使用全局变量链接头的JQuery,javascript,jquery,html,rss,global-variables,Javascript,Jquery,Html,Rss,Global Variables,我正在开发一个页面,该页面将显示各种RSS源,并使用选项卡式导航来显示不同的RSS源。在大多数情况下,我一切都很好。然而,在页面的顶部,我有一个标题,上面写着为RSS提供信息的资源的名称 我使用一个全局变量来存储指向资源的链接,然后在函数中使用该链接来创建链接。然而,它目前只是导致所有的头链接到同一个资源 var link = null; $.fn.rssFeedTopic = function(topicId) { switch(topicId) { case

我正在开发一个页面,该页面将显示各种RSS源,并使用选项卡式导航来显示不同的RSS源。在大多数情况下,我一切都很好。然而,在页面的顶部,我有一个标题,上面写着为RSS提供信息的资源的名称

我使用一个全局变量来存储指向资源的链接,然后在函数中使用该链接来创建链接。然而,它目前只是导致所有的头链接到同一个资源

var link = null;
$.fn.rssFeedTopic = function(topicId) {
      switch(topicId) {
          case 'topHeadlines': 
               link = "https://news.google.com/news?cf=all&hl=en&pz=1&ned=us";
               $("#topHeadlines").rssfeed('https://news.google.com/news?cf=all&hl=en&pz=1&ned=us&output=rss', "Google News ", {limit: 6, date:true});
               break;
          case 'topMDHeadlines':
               link = "http://wtop.com/region/local/maryland/";
               $("#topMDHeadlines").rssfeed('http://wtop.com/region/local/maryland/feed/', "WTOP - Maryland Stories ", {limit: 6, date:true});
               break;
          case 'topBusinessHeadlines':
               link = "https://news.google.com/news?cf=all&hl=en&pz=1&ned=us&topic=b";
               $("#topBusinessHeadlines").rssfeed('https://news.google.com/news?cf=all&hl=en&pz=1&ned=us&topic=b&output=rss', "Google News - Business ", {limit: 6, date:true});
               break;
          case 'topSportsHeadlines':
               link = "https://news.google.com/news?cf=all&hl=en&pz=1&ned=us&topic=s";
               $("#topSportsHeadlines").rssfeed('https://news.google.com/news?cf=all&hl=en&pz=1&ned=us&topic=s&output=rss', "Google News - Sports ", {limit: 6, date:true}); 
               break;
       }
};
下面是一个包含完整代码的示例


我还在学习JQuery,所以我怀疑我可能做错了什么。请告诉我。

您的方法的问题是,标题的HTML代码是异步创建的。您正在迭代每个选项卡的数据,将全局变量“link”设置为URL,然后创建每个选项卡的HTML代码,但HTML代码仅在加载JSON数据后创建–此时,您的循环已经完成迭代,并且循环中分配给link的最后一个值“运动页面”将用于每个选项卡

您可以通过删除全局变量并将链接URL作为附加选项传递给rssFeed jQuery插件来解决此问题,如下所示:

$("#topHeadlines").rssfeed(
    'https://news.google.com/news?cf=all&hl=en&pz=1&ned=us&output=rss', 
    "Google News ",
    {
        limit: 6,
        date:true,
        link: "https://news.google.com/news?cf=all&hl=en&pz=1&ned=us"
    }
);
在_回调函数中:

html += '<div class="rssHeader">' + 
        '<a href="' + options.link + '" ' +
        'title="' + news + '">' + news + '</a></div>';
html+=''
'';

这是您的小提琴的更新版本:

据我所知,小提琴中的代码运行良好。当我点击不同的标签时,我会得到不同的订阅源。标签工作,问题是当你点击标签下面的标题时,标题链接的URL总是相同的!我似乎一直在努力让事情变得比实际情况更难,哈哈。这正是我所需要的,很高兴我能帮助你!