我有一个应用程序,我希望在单击相应的团队时在一个页面上显示不同的RSS源。
例如,当我点击“Aberdeen”时,我希望该页面显示Aberdeen的RSS。 当我点击“凯尔特人”时,我希望同一页面显示凯尔特人的RSS。
我会将我的代码附加在一个部分中 - 基本上当页面#feed
加载时,我需要运行getFeed()
函数。
我正在使用jQuery Mobile。
“Feed”页面的HTML
<div data-role="page" id="feed">
<div data-role="header">
<h1 id="fheader">Header</h1>
</div>
<div data-role="content">
<a href="#" data-role="button" data-icon="plus">Add to My Teams</a>
<ul data-role="listview" class="list" data-inset="true" >
</ul>
</div>
</div>
getFeed的功能
var feedURL="http://www.football365.com/arsenal/rss";
var n = 12;
function getFeed(url, success, n){
url= feedURL.replace("??", n.toString());
if(window.navigator.onLine) {
$.jGFeed(url, function(feeds) {
// Check for errors
if(!feeds){
// there was an error
return;
} else {
localStorage.setItem(url, JSON.stringify(feeds));
success(feeds.title, feeds.entries);
}
},n );
} else {
// Get the fall-back...
var feed = JSON.parse(localStorage.getItem(url));
if(feed && feed.length > 0) {
success(feed.title, feed.entries);
}
}
}
$(document).on('pagebeforeshow',function(){
getFeed(feedURL,function(title,items){
$("#title").text(title);
for(var index=0; index<items.length; index+=1){
$("#list").append(formatItem(items[index]));
}
$("#list").listview('refresh');
},20);
} );
根据团队
查找RSS URL的功能function getIndex(teamlist, teamname){
for(var i = 0; i<teamlist.length; i++){
if(teamlist[i].teamname == teamname){
return i; // if found index will return
}
}
return -1; // if not found -1 will return
}
var a = getIndex(teamlist,name); // will give a as 0
console.log(a);
feedURL = teamlist[a].rss_url;
console.log(feedURL);
如您所见,特定团队的RSS URL是通过数组中的索引找到的。找到数组后,它会将其分配给feedURL变量。这部分工作正常
但是,当页面打开时,它不会考虑变量的变化。我需要刷新或重新运行getFeed()函数以考虑feedURL的新值。
希望这可以解决问题:)谢谢:)
答案 0 :(得分:1)
如果您想在页面加载时运行您的功能,请使用:
$(document).ready(function(){
getFeed();
};
当页面完全渲染并且#feed元素可用时,这将运行您的函数。