2011-08-17 53 views
1

我在我正在开发的网站上有一个选项卡式部分,并且希望为每个选项卡启用唯一的URL以及历史记录支持。jQuery地址/深层链接问题

看来jQuery地址插件是要走的路,但我在实施时遇到了麻烦。我可以分配网址并更改地址栏。后退按钮遍历URL,但实际上并没有改变标签。

地址文档不是很好。我假设我错过某种事件监听器,但我不知道如何初始化它或应用它。

这里是我的JS

$('.sm-tab').click(function() { 
    $.address.value($('a', this).attr('href')); 
    smReset(); 
    $('#sm-tabs').find('.active').each(function() { 
     $(this).removeClass('active'); 
     $(this).addClass('inactive'); 
    }); 
    $(this).removeClass('inactive'); 
    $(this).addClass('active'); 
    var smClassArray = $(this).attr('class').split(" "); 
    var smDivClass = smClassArray[1]; 
    $('#'+smDivClass).show(); 
}); 

我的HTML看起来像这样

<div id="sm-tabs"> 
    <div class="sm-tab inactive twitter"> 
     <span class="twitter sprite-sm-twitter"><a href="?tab=twitter" class="hidetext">Twitter</a></span> 
    </div> 
    <div class="sm-tab inactive youtube"> 
     <span class="youtube sprite-sm-youtube"><a href="?tab=youtube" class="hidetext">YouTube</a></span> 
    </div> 
</div> 

<div id="sm-widgets"> 
    <div id="twitter"> 
     Content 
    </div> 
    <div id="youtube"> 
     Content 
    </div> 
</div> 
+0

请参阅:http://stackoverflow.com/questions/172957/detecting-back-button-hash-change-in-url –

回答

1

使用Ajax的导航哈希值是要打开你a whole can of worms

尝试使用HTML5 History API代替this deep-linking script

+0

我实际上需要避免完全使用哈希。我有一个YouTube身份验证重定向,当它返回到我的页面时,它会覆盖并散列。我希望我可以让地址工作没有哈希,但看起来这可能是不可能的? – Derek

+0

当然,使用上面提到的深层链接脚本,但不包括'history.html4.js'这是HTML4支持(也就是哈希的东西)。 – balupton