【发布时间】:2013-12-23 17:52:05
【问题描述】:
当内容加载完成时,我如何跟踪和console.log 负责将页面滚动到顶部的事件?请注意,代码中没有任何内容显式滚动到顶部,但是在 (jQuery) ajax 内容成功获取并呈现后,如果用户已经向下滚动了一点,页面将滚动到顶部。
有没有办法记录触发此行为的原因?
是否有允许记录所有 Javascript 事件的 Chrome 扩展程序?
我尝试过的一些事情没有帮助:
- 没有函数运行超过一次(console.log 为每个步骤显示一次)
-
使用
防止滚动动画$('html, body').stop(true,false).clearQueue().finish();没用
- 禁用图像延迟加载插件和其他辅助插件无效
- 在 ajax/callbacks 的每一步都正确报告了记录身体高度
- 将
return false;添加到$.ajax().success(),done(),complete()没有帮助
Ajax 在文档准备就绪时触发。加载所有内容后会滚动到顶部。
【问题讨论】:
-
我冒昧地猜测您的 AJAX 调用未能触发,请将您的调试器设置为“在导航时保留错误”并让我们知道会发生什么...
-
@Xander,我将如何在 jQuery 的
$.ajax中设置它?$.ajax().error(function(){ console.log('ajax error'); });上没有任何内容。似乎问题实际上是在 ajax 成功完成后发生的。 -
在 Chrome/Firefox 开发工具中寻找该选项。这样做后,观察错误控制台是否有任何可能导致您观察到的行为的错误。
-
谢谢,我找到并打开了,但没有错误。
-
最常见的原因是 AJAX 调用被带有“#”作为其 href 的锚标记触发。 AJAX 事件被正确触发,但没有 event.preventDefault,哈希使页面滚动到顶部。
标签: javascript jquery