我正在使用jgfeed来使用jquery来检索一个feed。它运作良好。 它显示了所有标题和链接。
这是代码:
$.jGFeed('http://www.link.org/feed',
function(feeds){
if(!feeds){
alert('No network');
}
for(var i=0;i<feeds.entries.length;i++){
var entry = feeds.entries[i];
var title = entry.title;
var link = entry.link;
var html = "<ul class='pageitem'><li class='textbox'><span class='header'>" + title + "</span></li><li class='menu'><a href='" + link + "'><span class='name'>Read more</span><span class='arrow'></span></a></li></ul>";
$("#feedContent").append($(html));
}
}, 20);
在html中:
<div id="feedContent"></div>
但我需要做一个window.open的每个链接而不是href。我测试了很多东西,但我不能这样做......
任何帮助?
答案 0 :(得分:1)
由于你正在使用jQuery,你可以为列表中的链接设置自己的事件处理程序。
$('.pageitem').delegate('a', 'click', function(e) {
window.open( $(this).attr('href'), 'popup' );
e.preventDefault();
});
请注意,我们使用的是$.delegate()
而不是$.click()
。这是因为我们正在处理的<a>
标记在页面加载时不存在。使用delegate()
可确保列表中的所有未来<a>
标记都获得事件处理程序。
答案 1 :(得分:1)
我建议保留href,以防万一窗口出现问题。
您只需在html字符串中附加的每个链接上添加一个类,然后在追加它之后,将click事件应用于该类:
$.jGFeed('http://www.link.org/feed',
function(feeds){
if(!feeds){
alert('No network');
}
for(var i=0;i<feeds.entries.length;i++){
var entry = feeds.entries[i];
var title = entry.title;
var link = entry.link;
var html = "<ul class='pageitem'><li class='textbox'><span class='header'>" + title + "</span></li><li class='menu'><a href='" + link + "' class="external-link"><span class='name'>Read more</span><span class='arrow'></span></a></li></ul>";
$("#feedContent").append($(html));
$('.external-link').click(function() {
window.open($(this).attr('href'), 'My_Window', 'width=800,height=600');
return false;
});
}
}, 20);
答案 2 :(得分:0)
var html = "<ul class='pageitem'>" +
" <li class='textbox'>" +
" <span class='header'>" + title + "</span>" +
" </li>" +
" <li class='menu'>" +
" <a href='" + link + "' target='new'>"; // <<-- Look here. Make
//this target unique if each link should open in its own page. use one
//target like "new" to open all links in one separate page.
html +=" <span class='name'>Read more</span>" +
" <span class='arrow'></span>" +
" </a>" +
" </li>" +
"</ul>";