我有一个项目通过js函数加载回帖:
$('div.discussion_content').each( function() {
discussion.loadDiscussion($(this));
});
它设法在页面加载时工作得很好,但我们在页面上有一个“无限滚动”,当我向下滚动以获得更多内容(因此更多讨论)时,我什么也得不到。
我已经尝试了.on()jQuery函数......但是在什么方面呢?我想在元素加载后立即调用这个函数并尝试.on('load'...)无效。
我已经尝试过.livequery()插件......
$('div.discussion_content').livequery(function() {
discussion.loadDiscussion($(this));
});
也无济于事。
我想要的东西不可能是不可能的,甚至是不常见的...但我发现自己很不知道解决方案。
答案 0 :(得分:3)
如果你想在插入后立即执行一个动作,那么你应该把逻辑作为AJAX调用的成功处理程序的一部分。
如果你真的想要对其中一个元素的某些动作执行这个逻辑,那么on()
应该是你的方法。请注意,on()
需要将父元素附加到调用on()
函数时出现的动态元素。用法如下:
$('#container_available_at_page_load').on('click', '.class_of_dynamic_elements', function() {
// do something
});
答案 1 :(得分:0)
您是否尝试过滚动事件? http://api.jquery.com/scroll/
答案 2 :(得分:0)
您是否尝试过活动授权?
$(document).on('click','myClickeableDiv', function(){
//do your thing
});
答案 3 :(得分:0)
页面加载时不存在这些元素,因此“each”语句不会影响它们。 尝试在创建后触发“each”语句(在滚动事件上)。
*如果您附加了更多代码,则可能会有所帮助。