【问题标题】:How to disable jQuery Mobile scrolling to top of the page?如何禁用 jQuery Mobile 滚动到页面顶部?
【发布时间】:2012-09-12 13:18:38
【问题描述】:

我在页面中有一些锚点,当我使用锚点加载页面时:

http://localhost:1820/Home/FAQ#question4

jQuery Mobile 在 1-3 秒后自动滚动到页面顶部。我无法为$(document).ready() 添加修复程序,因为此事件在滚动之前触发(加载所有内容后出现滚动 - 带有额外的社交按钮图像、脚本等)。

当我删除 jquery.mobile-1.1.1.js 脚本时 - 错误消失了。 当我删除除 jQuery 和 jQuery mobile 之外的所有脚本时 - 错误仍然存​​在。所以问题应该出在 jQuery Mobile 脚本中。

我该如何解决问题?

我使用 Chrome 和 Opera 进行了测试。

附:我设置了$.mobile.ajaxEnabled = false;,所以我的网站不使用Ajax加载页面。

【问题讨论】:

    标签: jquery jquery-mobile


    【解决方案1】:

    jQueryMobile 默认使用“#”字符来表示页面,而不是锚点(请参阅documentation 中的“多页文档中的链接”部分)。

    尝试将rel="external"data-ajax="false" 添加到页面链接,如文档中所述。

    【讨论】:

    • 即使我直接在浏览器导航栏中输入 URL 地址,而不使用链接,也会出现此错误。
    • 您需要将 ID“question4”提供给您希望与 URL 一起显示的 divdata-role="page"
    【解决方案2】:
    $.mobile.silentScroll()
    

    可以解决您的问题。您可以在页面加载时捕获 Hash 部分,并使用它自动滚动到您需要将页面带到的部分。我最近回答了一个类似的问题。看看对你有没有帮助 jQuery Mobile Tabs and Anchors

    【讨论】:

      猜你喜欢
      • 2011-05-11
      • 1970-01-01
      • 1970-01-01
      • 2013-02-21
      • 2014-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多