2011-05-16 10 views
0

У меня есть страница с фида, для которой требуется ссылка на каждую ссылку в RSS-сообщении.Как избежать неудачного обратного вызова в ZRSSfeed?

Я использую ZRSSfeed, который замечательный, но он не будет делать обратные вызовы, поэтому функция .click() работает задолго до того, содержания RSS прибывает

есть скрипка этого здесь:

http://jsfiddle.net/PMtCN/

спасибо много

+0

интересное примечание стороны есть, очевидно, патч для добавления обратного вызова Zrssfeed на Jquery сайте Http: // плагины .jquery.com/node/14919 – stebbin45

ответ

2

Если я понимание проблемы, вы хотите, чтобы в перетащите обработчик кликов в результат, но не знаете, когда загружается контент. Если это так, то просто использовать live:

Описание: Приложить обработчик к событию для всех элементов, которые соответствуют текущему селектор , сейчас и в будущем .

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

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

.live() - безумно простое решение для этого .. отлично! – stebbin45

0

Если вы не можете использовать функцию обратного вызова, и вы хотите индивидуально применить функцию щелчка к каждому узлу матча вы можете использовать код, подобный этому,

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, который не требует, чтобы элементы были созданы до привязки.

+0

это очень хороший подход грубой силы, который пригодится где-то там, не здесь! .. большое спасибо – stebbin45

1

Последняя версия имеет функцию обратного вызова, поэтому теперь вы можете выполнять действия над фидными элементами после ее загрузки.

В приведенном ниже примере ограничивает длину заголовка подачи до 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

Смежные вопросы