如何在将来的元素上触发jQuery函数

如何在将来的元素上触发jQuery函数,jquery,Jquery,我有一个页面,其中一些tweet是从Twitter动态获取的。这就像是一个新闻事件。整页都在这里 该页面在jsfiddle中工作,因为内容已经在那里,而活动站点上的内容则动态地放置在div中。ticker()函数仍然有效,但if语句没有生效。有人能帮我修一下吗 编辑: 对不起,伙计们,我没有澄清为什么会有if声明。该函数可以独立工作,但我不希望在只有一条tweet时运行该函数。这就是为什么我有if(tickerli.length!=1)。我可能应该使用>1而不是!=1,但你明白了 那是票!!代表

我有一个页面,其中一些tweet是从Twitter动态获取的。这就像是一个新闻事件。整页都在这里

该页面在jsfiddle中工作,因为内容已经在那里,而活动站点上的内容则动态地放置在div中。ticker()函数仍然有效,但if语句没有生效。有人能帮我修一下吗

编辑:

对不起,伙计们,我没有澄清为什么会有if声明。该函数可以独立工作,但我不希望在只有一条tweet时运行该函数。这就是为什么我有
if(tickerli.length!=1)
。我可能应该使用>1而不是!=1,但你明白了


那是票!!代表不止一次救了我的命

好的,完全重做我的回答,因为我对你的问题感到困惑:

要处理
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);
}
$('twitter-container-34').on('click', '.tweet_text', function() {
    // your event handling code here
});

这是我之前的回答,当时我认为您需要关于动态添加元素的事件处理的帮助

要安装在将来动态添加的元素上工作的事件处理程序,您需要使用委托事件处理。为此,您可以使用:

$(static parent selector).on(event, selector of dynamic element, fn);
注意:
.on()
有两种形式,一种是静态的,另一种是动态的(使用委托事件处理)。要使用动态事件处理,请将
.on()
处理程序绑定到非动态的父元素,然后将其作为第二个参数传递给与动态元素匹配的选择器
.on()

在JSFIDLE中,对于tweet文本上的单击处理程序,其工作原理如下:

$(function(){
    function ticker() {
        var tickerLi = $('.tweet_list li');
        if (tickerLi.length > 1) {
            tickerLi.first().fadeOut(function() {
               $(this).appendTo($('.tweet_list')).fadeIn();
            });
        }
    }

    setInterval(ticker, 2000);
}
$('twitter-container-34').on('click', '.tweet_text', function() {
    // your event handling code here
});

注意:jqueryv1.7中添加了jQuery
.on()
。对于jQuery的早期版本,请使用
.delegate()

如何将内容放置到div中?你能修改动态添加内容的代码吗?我实际上可以修改代码,但我不想修改,因为这需要太多的工作。你如何在自定义函数上使用委托,而与鼠标事件和所有这些(交互)无关?推文实际上不打算被点击。它只是有点独立运行。这是一个自动售票机,没什么特别的。它显示推文,不与用户交互users@user14412-那么你的问题是什么?你想对新添加的推文做些什么?在js中检查一下,如果(tickerli.length!=1)如果你也将其更改为==1而不是!=1,你可以看看它是什么does@user14412-好的,我已经重做了我的答案,因为我对你的问题有了更好的了解。