【问题标题】:jQuery not working with hash in URLjQuery 不使用 URL 中的哈希
【发布时间】:2011-06-09 23:08:13
【问题描述】:

使用带有 ThemeRoller 主题的 jQuery Mobile,当点击“Cake Sizes”时,折叠式菜单会提供一个带有哈希的 URL。 ThemeRoller 主题在 URL 中没有加载。

<div><h3><a href="#">Cakes</a></h3>
<div id="accordion-child">
<div><h3><a href="/cakes/cake-sizes" data-transition="slideup">Cake Sizes</a></h3></div>
<div><h3><a href="/cakes/flavors">Flavors</a></h3></div>
<div><h3><a href="/cakes/gallery">Gallery</a></h3></div>
</div>
</div>

当点击“蛋糕尺寸”时,网址为http://example.com/#/cakes/cake-sizes

如何防止 # 出现在 URL 中,或者如何删除它?有谁知道为什么 Themeroller 主题不会在 URL 中加载哈希?

【问题讨论】:

    标签: jquery mobile jquery-mobile themeroller


    【解决方案1】:

    为什么你在href 中有# 用于蛋糕呢。将其留空,它将以相同的方式运行。

    【讨论】:

    • 好建议。我试过了,但它不起作用。不知何故添加了哈希。状态栏显示 mydomain.com/cakes/cake-sizes,但是当我单击并加载页面时,URL 中包含哈希:mydomain.com/#/cakes/cake-sizes。我认为只有我的自定义 css 真正起作用,而其他 css 都没有。
    • 它似乎对我有用...我相信 # 来自其他地方对您来说...
    • 你能把你的代码发给我吗?我想知道这是否是我的 jquery 脚本调用。
    • 我正在使用浏览器进行测试。 JQM 控件不会加载到浏览器中(它不是手持设备),这会产生“错误”。您必须告诉浏览器伪装成手持设备。
    【解决方案2】:

    默认情况下 jquery mobile 使用 ajax 调用来加载页面。所以“#”会自动包含在 url 中。为避免这种情况,请使用

    data-ajax="假"

    禁用超链接上的 ajax 调用。并尝试这样

    <div><h3><a href="#" data-ajax="false">Cakes</a></h3>
    

    希望它有效...

    【讨论】:

      猜你喜欢
      • 2019-01-22
      • 2021-03-01
      • 2014-08-14
      • 2012-12-08
      • 1970-01-01
      • 2016-01-04
      • 2012-12-07
      • 2011-12-13
      • 2013-03-12
      相关资源
      最近更新 更多