jQuery 地址/深层链接问题
我当前正在开发的网站上有一个选项卡式部分,并且希望为每个选项卡启用唯一的 URL 以及历史记录支持。
看来 jQuery Address 插件是可行的方法,但我在实现它时遇到了麻烦。我可以分配 URL 并更改地址栏。后退按钮遍历 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>
I have a tabbed section on a website I'm currently developing, and would like to enable unique URLs for each tab, as well as history support.
It seems the jQuery Address plugin is the way to go, but I'm having trouble implementing it. I'm able to assign URLs and change the address bar. The back button traverses URLs, but doesn't actually change the tabs.
The Address documentation isn't great. I'm assuming I'm missing some sort of event listener, but I'm not sure how to initialize it or what to apply it to.
Here is my 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();
});
My HTML looks something like this
<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>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用哈希进行 ajax 导航会让您陷入一大堆蠕虫< /a>.
尝试这个深度链接脚本,它使用 HTML5 History API。
Using hashes for ajax navigation is going to open you to a whole can of worms.
Try this deep-linking script which uses the HTML5 History API instead.