0

我有一个项目正在通过 js 函数加载对帖子的回复:

$('div.discussion_content').each( function() {
    discussion.loadDiscussion($(this));
});

它在页面加载时运行良好,但我们在页面上有一个“无限滚动”,当我向下滚动以获取更多内容(以及因此更多讨论)时,我什么也得不到。

我已经尝试过 .on() jQuery 函数......但是在什么上?我想在元素加载后立即调用此函数并尝试 .on('load' ... ) 无济于事。

我已经尝试过 .livequery() 插件...

$('div.discussion_content').livequery(function() { 
    discussion.loadDiscussion($(this)); 
});

也无济于事。

我想要的不可能是不可能的,甚至是不寻常的……但我发现自己很糟糕,不知道解决方案。

4

4 回答 4

3

如果您想在插入后立即执行操作,那么您可能应该只将逻辑作为 AJAX 调用的成功处理程序的一部分。

如果您确实想对其中一个元素的某些操作执行此逻辑,那么on()应该是您的方法。请注意,on()需要将父元素附加到on()调用函数时存在的动态元素。用法是这样的:

$('#container_available_at_page_load').on('click', '.class_of_dynamic_elements', function() {
    // do something
});
于 2013-02-26T20:55:08.180 回答
0

你试过滚动事件吗? http://api.jquery.com/scroll/

于 2013-02-26T20:53:02.097 回答
0

你试过事件委托吗?

$(document).on('click','myClickeableDiv', function(){
  //do your thing
});
于 2013-02-26T20:53:19.223 回答
0

这些元素在页面加载时不存在,因此“每个”语句不会影响它们。尝试在创建后触发“每个”语句(在滚动事件上)。

*如果您附上了更多代码,它可能会有所帮助。

于 2013-02-26T20:57:05.873 回答