2011-05-16 5 views
0

私は、RSSフィードのすべてのリンクにクリックハンドラを適用する必要があるフィードページを持っています。ZRSSfeedで成功したコールバックの問題を回避する方法はありますか?

私はZRSSfeedを使用していますが、これは素晴らしいですが、コールバックを行わないので、.click

http://jsfiddle.net/PMtCN/

おかげで、私は問題を理解していた場合はかなり

+0

興味深いサイドノートjQueryのサイトでZrssfeedに HTTPをコールバックを追加するためのパッチは明らかにあり.jquery.com/node/14919 – stebbin45

答えて

2

、あなたがにしたい:RSSコンテンツは

がここにこれのフィドルがあります到着するずっと前に実行されますクリックハンドラを結果に適用しますが、コンテンツがいつロードされるかはわかりません。

説明:現在から 将来、 電流セレクタに一致するすべての要素について イベントハンドラを接続し、このような場合は、単に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

これはここではないどこか便利な非常に素晴らしいbrute forceアプローチです! .. どうもありがとう – 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

関連する問題