OK、あなたが何を求めているのか混乱していたので、私の答えを完全にやり直しました。
関数に動的に追加された要素を処理するにはticker()
、次のように関数を呼び出すたびにセレクターを再評価する必要があります。
$(function(){
function ticker() {
var tickerLi = $('.tweet_list li');
if (tickerLi.length > 1) {
tickerLi.first().fadeOut(function() {
$(this).appendTo($('.tweet_list')).fadeIn();
});
}
}
setInterval(ticker, 2000);
}
これは、動的に追加された要素のイベント処理について支援が必要だと思ったときの以前の回答でした。
将来動的に追加される要素で機能するイベントハンドラーをインストールするには、委任されたイベント処理を使用する必要があります。これを行うには、次を使用できます。
$(static parent selector).on(event, selector of dynamic element, fn);
注:の形式は2つあり.on()
、1つは静的で、もう1つは動的です(委任されたイベント処理を使用します)。動的イベント処理を使用するには、.on()
ハンドラーを動的ではない親要素にバインドしてから、(.on()
動的要素に一致するセレクターの2番目の引数として)渡します。
ツイートテキストのクリックハンドラーのjsFiddleでは、次のように機能します。
$('twitter-container-34').on('click', '.tweet_text', function() {
// your event handling code here
});
注:jQuery.on()
はjQueryv1.7で追加されました。以前のバージョンのjQueryの場合は、を使用します.delegate()
。