好的,完全重做我的答案,因为我对您的要求感到困惑:
要处理函数中动态添加的元素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);
注意:有两种形式.on()
,一种是静态的,一种是动态的(使用委托事件处理)。要使用动态事件处理,请将.on()
处理程序绑定到非动态的父元素,然后传递(作为.on()
与动态元素匹配的选择器的第二个参数)。
在您的 jsFiddle 中,对于推文文本的点击处理程序,它的工作方式如下:
$('twitter-container-34').on('click', '.tweet_text', function() {
// your event handling code here
});
注意:jQuery.on()
是在 jQuery v1.7 中添加的。对于早期版本的 jQuery,请使用.delegate()
.