我有一个Feed页面需要将一个点击处理程序应用于rss Feed中的每个链接..
我正在使用ZRSSfeed这很棒,但它不会进行回调,因此.slick()函数会在rss内容到来之前运行很长时间
这里有一个小提琴:
非常感谢
答案 0 :(得分:2)
如果我理解了这个问题,您希望在结果中附加一个点击处理程序,但不知道何时加载了内容。如果是这种情况,那么只需使用live:
描述:将处理程序附加到 所有匹配的元素的事件 当前选择器,现在和在 将来
jQuery('#linkwidget a').live("click",function(){
alert('Hello World');
return false;
});
答案 1 :(得分:1)
最新版本具有回调功能,因此您现在可以在加载后对Feed项执行操作。
以下示例将Feed标题长度限制为14个字符:
$(document).ready(function () {
$('#test').rssfeed('http://feeds.reuters.com/reuters/oddlyEnoughNews',{},function(e) {
$('h4 a',e).each(function(i) {
var title = $(this).text();
if (title.length > 14) $(this).text(title.substring(0,14)+'...');
});
});
});
答案 2 :(得分:0)
如果你不能使用回调,并且你想单独将click功能应用于每个匹配节点,你可以使用这样的代码,
var COM_MYSITE_RSS_CHECK;
var COM_MYSITE_RSS_CHECK_COUNT = 0;
var COM_MYSITE_RSS_CHECK_FREQ = 100;
var COM_MYSITE_RSS_CHECK_MAX = 100;
function wait_for_rss(){
if (jQuery('#linkwidget a').length > 0 || COM_MYSITE_RSS_CHECK_COUNT > COM_MYSITE_RSS_CHECK_MAX )
{
clearInterval(COM_MYSITE_RSS_CHECK);
jQuery('#linkwidget a').click(function(){
alert('Hello World');
return false;
});
}
COM_MYSITE_RSS_CHECK_COUNT++;
}
然后在调用ajax请求后
COM_MYSITE_RSS_CHECK = setInterval(wait_for_rss, COM_MYSITE_RSS_CHECK_FREQ);
或者,如果不需要单独绑定到元素,您可以查看绑定函数的jQuery Live方法,这不需要在绑定之前创建元素。