如何解决ZRSSfeed缺乏成功回调的问题?

时间:2011-05-16 02:51:44

标签: jquery rss event-handling

我有一个Feed页面需要将一个点击处理程序应用于rss Feed中的每个链接..

我正在使用ZRSSfeed这很棒,但它不会进行回调,因此.slick()函数会在rss内容到来之前运行很长时间

这里有一个小提琴:

http://jsfiddle.net/PMtCN/

非常感谢

3 个答案:

答案 0 :(得分:2)

如果我理解了这个问题,您希望在结果中附加一个点击处理程序,但不知道何时加载了内容。如果是这种情况,那么只需使用live

  

描述:将处理程序附加到   所有匹配的元素的事件   当前选择器,现在和在   将来

http://jsfiddle.net/PMtCN/11/

 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)+'...');
        });
    });
});

http://www.zazar.net/developers/jquery/zrssfeed

答案 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方法,这不需要在绑定之前创建元素。