如何解决 ZRSSfeed 中缺少成功回调的问题



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

我正在使用 ZRSSfeed,这很棒,但它不会进行回调,因此 .click() 函数在 rss 内容到达之前很久就运行了

这里有一个小提琴:

http://jsfiddle.net/PMtCN/

非常感谢

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

说明:将处理程序附加到 与 当前选择器,现在和在 前途。

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

 jQuery('#linkwidget a').live("click",function(){ 
    alert('Hello World');
    return false; 
  }); 

最新版本具有回调函数,因此您现在可以在加载源项后对源项执行操作。

以下示例将 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

如果您无法使用回调,并且想要单独将 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 方法,该方法不要求在绑定之前已经创建了元素。

最新更新