【问题标题】:jQuery bbq... where's the grill?jQuery bbq...烤架在哪里?
【发布时间】:2012-03-30 12:10:47
【问题描述】:

我正在查看 jQuery bbq 插件,但在他的代码中找不到任何提及 document.hash 的内容。

我假设获取哈希是在1094 行:

function get_fragment( url ) {
    url = url || location.href;
    return '#' + url.replace( /^[^#]*#?(.*)$/, '$1' );
};

并将哈希设置为 818 但是为什么要使用这些而不是 location.hash 呢?

还有this是怎么回事:

jq_bbq.pushState = jq_bbq_pushState = function( params, merge_mode ) {

jq_bbq_pushState = function... 还不够吗?

【问题讨论】:

    标签: javascript jquery hashchange jquery-bbq


    【解决方案1】:

    关于您的第二点-location.hash 的那一点-我无法确定,但早期版本的浏览器可能会遇到location.hash 的问题。
    我的猜测是作者需要依赖hash 属性,所以他实现了自己的。
    如果您在 google 上搜索 ie6 location.hash,您不必挖掘信息就可以看到有很多投诉。

    【讨论】:

    • 其实pushState是一种新的浏览器历史记录方法,允许你手动操作历史记录并存储浏览器的状态。 developer.mozilla.org/en/DOM/…
    • @WilliamGolden 很抱歉造成混淆,但我只是指问题中的第二点;带有location.hash 的那个。查看更新。
    【解决方案2】:

    document.hash 不存在,您可以通过 document.location.hash 访问该哈希。 get_fragment 函数似乎做同样的事情。 我猜作者使用了自定义函数,因为他不知道 document.location.hash。

    jq_bbq.pushState = jq_bbq_pushState = function( params, merge_mode ) {
    

    这会将函数添加到 jq_bbq 命名空间/对象,并允许使用局部变量 jq_bbq_pushState 引用它。

    【讨论】:

    • jq_bbq.pushState 一个是全局的还是一个是本地的? Ben def 也知道location.hash
    • 它不是全局的,除非 bbq 是对窗口的引用,但我不这么认为。 (我只是从代码中扣除这个,我不知道框架)这可能是想要通过 jq_bbq 命名空间公开私有函数的结果。
    【解决方案3】:

    好吧,如果需要,您可以使用插件。在 WordPress 中查找插件部分,在“添加新”下,您可以搜索替代品。这是一个示例结果https://bestgrill.reviews/best-wood-pellet-grills/。您也许可以找到一个插件来帮助您解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多