【发布时间】:2014-10-14 07:43:50
【问题描述】:
情况如下:
当用户点击特定链接(在 div.Foo 中)时,会加载一个页面。 我想要的是“滚动到底部”仅在用户单击并加载新页面后(而不是同时)执行。
到目前为止,我有以下代码:
$(document).ready(function () {
$('.Foo a').click(function () {
setTimeout(function () {
$('html, body').animate({ scrollTop: $(document).height() }, 'slow');
}, 100);
});
});
但它不能正常工作。
注意!:我不能使用 preventDefault 因为应该加载新页面!由于 URL 是动态生成的,因此也无法使用 #hash。
【问题讨论】:
-
您是否尝试将
preventDefault添加到处理程序? -
它在 chrome 中为我工作。你有一个语法错误,在最后一个 ) 之前缺少一个 };
-
a preventdefault 将停止加载新页面。如果它是常规链接,则上述方法不起作用,因为在加载新页面时,带有 javascript 的页面已被卸载。您必须在没有新页面上的点击功能的情况下执行此操作。
-
新页面需要滚动到底部吗?
-
@Frogmouth 确实是的
标签: javascript jquery timeout