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

发布于 2024-11-08 02:51:59 字数 234 浏览 0 评论 0原文

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

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

这里有一个小提琴:

http://jsfiddle.net/PMtCN/

非常感谢

I have a feed page that needs to have a click handler applied to every link in the rss feed..

I'm using ZRSSfeed which is great but it won't do callbacks so the .click() function runs long before the rss content arrives

there's a fiddle of this here:

http://jsfiddle.net/PMtCN/

thanks much

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

染柒℉ 2024-11-15 02:51:59

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

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

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

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

If I'm understanding the issue, you want to attach a click handler to the result, but don't know when the content is loaded. If this is the case, then simply use live:

Description: Attach a handler to the
event for all elements which match the
current selector, now and in the
future.

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

 jQuery('#linkwidget a').live("click",function(){ 
    alert('Hello World');
    return false; 
  }); 
手心的温暖 2024-11-15 02:51:59

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

下面的示例将提要标题长度限制为 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

The latest version has a callback function, so you can now perform actions on feed items after it has loaded.

The example below limits the feed title length to 14 characters:

$(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

陌路黄昏 2024-11-15 02:51:59

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

If you can't use the callback, and you want to individually apply the click function to each match node you can use code like this,

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++;
}

and then after you call the ajax request,

COM_MYSITE_RSS_CHECK = setInterval(wait_for_rss, COM_MYSITE_RSS_CHECK_FREQ);

Or if individually binding to the elements is not required, you could look into the jQuery Live method of binding functions, which does not require the elements to have already been created prior to binding.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文