我目前正在使用此答案中提供的解决方案jQuery scroll to element但是,我遇到的问题是我想要滚动到的元素已经通过ajax插入到dom中,因此该函数实际上不起作用。我假设jquery不知道元素是否存在,因为页面实际上没有重新加载。
我过去曾经使用像jquery .delegate这样的东西来实现click / onchange事件但是,我不确定是否/如何使用类似的东西,以便jquery可以找到新创建的元素。
关于我如何做到这一点的任何想法?我目前正在使用的代码用于滚动:
$('html,body')。animate({scrollTop:$(“#comment_row _”+ comment_id).offset()。top},2000);
答案 0 :(得分:1)
当ajax完成并添加新元素时,你应该调用你的滚动函数,例如成功回调。
答案 1 :(得分:1)
$('#content').load( 'url.php');
/* ajax hasn't completed when this fires-FAIL*/
$('html, body').animate({ scrollTop: $("#comment_row_"+comment_id).offset().top }, 2000);
$('#content').load( 'url.php', function(){
/* ajax has completed when this fires-PASS*/
$('html, body').animate({ scrollTop: $("#comment_row_"+comment_id).offset().top }, 2000);
});