This is the result of BuddyPress using a parent/child relationships in the DOM manipulation to locate the insert position of the new items. If you alter the BP template files at all by creating a new HTML container it will cause the JavaScript function to fail. I’m sure it’s something they’re planning to improve. For now you can use the code below to do a more efficient method that doesn’t rely on DOM relationships but class names instead.
Open “activity/activity-loop.php” and add this at the end of the file:
<script type="text/javascript">
/* Fix for BP default "load more" */
if (jq) {
// remove the default BP click event
jq('ul.activity-list li.load-more a').unbind('click');
// Assign a new click behavior for 'load more' (again, necessary because of dumb references to containers like "#content")
jq('ul.activity-list li.load-more a').click(function() {
$parent = jq(this).parent('li.load-more');
$parent.addClass('loading');
if ( null == jq.cookie('bp-activity-oldestpage') )
jq.cookie('bp-activity-oldestpage', 1, {path: '/'} );
var oldest_page = ( jq.cookie('bp-activity-oldestpage') * 1 ) + 1;
jq.post( ajaxurl, {
action: 'activity_get_older_updates',
'cookie': encodeURIComponent(document.cookie),
'page': oldest_page
},
function(response) {
$parent.removeClass('loading');
jq.cookie( 'bp-activity-oldestpage', oldest_page, {path: '/'} );
jq("div.activity ul.activity-list").append(response.contents);
$parent.hide();
}, 'json' );
return false;
});
}
</script>
Please let me know if you have any problems.