【问题标题】:jQuery Address, changing a parameter? (deep linking)jQuery地址,更改参数? (深度链接)
【发布时间】:2011-07-11 21:21:13
【问题描述】:

我正在使用 jQuery Address 在 ajax 网站中执行深度链接。

我有多个这样的参数:/SomeController/SomeAction#/586?e=5808&tab=#First

Q1:如何只更改“tab”参数?
当我这样做时......

$("#tabs").bind("tabsselect", function(event, ui) {
    $.address.parameter("tab", ui.tab.hash);
}

..结果是:/SomeController/SomeAction#/586?e=5808&tab=#First#Third
而不是想要的:/SomeController/SomeAction#/586?e=5808&tab=#Third

在上述情况下,url 哈希中的其他参数应被视为未知,并且必须保持原样。

Q2:如何从 url 哈希中删除参数?
和上面一样,但是如果我想完全删除 tab 参数。

谢谢!

【问题讨论】:

    标签: javascript jquery deep-linking jquery-address


    【解决方案1】:

    您提供的链接有一个tabs 示例

    http://www.asual.com/jquery/address/samples/tabs/#Overview

    您可以使用 firebug 窥探代码。看起来很干净

    【讨论】:

      【解决方案2】:

      我知道这是一个非常古老的问题,但我认为 id 仍然可以回答。

      您必须先将参数设置为null 才能将其移除,然后再分配新值:

      $.address.parameter('tab', null) 
      $.address.parameter('tab', ui.tab.hash)
      

      【讨论】: