jQuery URL操作

时间:2011-01-25 13:49:25

标签: jquery

HY,

我有这样的菜单:

<a href=home>Home</a>
- <a href=home/sub1>Home Sub 1</a>
- <a href=home/sub2>Home Sub 2</a>
- <a href=home/sub3>Home Sub 3</a>

<a href=garden>Garden</a>
- <a href=garden/sub1>Garden Sub 1</a>
- <a href=garden/sub2>Garden Sub 2</a>
- <a href=garden/sub3>Garden Sub 3</a>

现在我设置链接网址:

$.address.init(function(event) {

$('a').address(function() {return $(this).attr('href').replace(location.pathname, '');});}).change(function(event) {

  var text = (event.value == '') ? 'Home' : 
  event.pathNames[0].substr(0, 1).toUpperCase() + 
  event.pathNames[0].substr(1);
  $('a').each(function() {
  $(this).toggleClass('selected', $(this).text() == text);
  });
 })

因此,如果我点击“主页”我的网址 - &gt; www.web.com/#/home和home sub 1 - &gt; www.web.com /#/家/ SUB1。

  1. 如何更换不需要的“/#/”?
  2. 我如何阅读实际网址,如果匹配,例如:www.web.com/garden/sub1采取一些行动? 我想使用这个,所以如果有人通过特定链接访问我的网站,实际的导航点应该是打开的。
  3. THX

1 个答案:

答案 0 :(得分:0)

  

您可以使用操作URL   使用JavaScript的   window.location.href属性,但是   这将触发页面重新加载;   幸运的是你可以使用   window.location.hash属性。该   hash属性用于片段   标识符,是可选的   之后的URL组件   哈希字符(#)。字符串   哈希字符不是之后   发送到服务器;因此,   浏览器负责恢复   状态通过客户端脚本,和   检索适当的视图。   因为它们像普通链接一样   但在一个页面内,没有页面   发生重新加载,浏览器运行   好像你点击了一个标准   链接,将URL添加到列表中   访问过的网址这也使   历史导航,书签和   与其他人共享网址。

来源:http://blogs.southworks.net/jdominguez/2010/02/the-single-page-interface-pattern/