jQuery UI Tabs 或 .load() - 选项卡链接与选项卡内容和附加 URL 位于不同的容器中
我有以下 html 结构
<div id-"top">
<ul id="tabs">
<li><a href="#tab-content-1">tab 1</a></li>
<li><a href="#tab-content-2">tab 2</a></li>
<li><a href="#tab-content-3">tab 3</a></li>
</ul>
<!--/top--></div>
<div id="content">
<div id="tab-content-1">content 1</div>
<div id="tab-content-2">content 2</div>
<div id="tab-content-3">content 3</div>
<!--/bottom--></div>
从我所看到的和其他用途来看,jQuery UI 选项卡要求 ul 和内容位于同一个容器中,而我的容器则不然。
所以我使用了 .load() 函数 - 我将这个方法的链接从“#tab-content-1”分别更改为“AjaxPages/tab-content-1.html”,并且有以下有效的代码,但是我无法让它附加网址,因此它会反映可见内容,因此它们可以添加书签并且能够直接链接到。
$(function() {
$('#content').load('AjaxPages/tab-content-1.html');
});
$("#tabs li a").click(function(e) {
e.preventDefault();
var $parent = $(this).parent();
$parent.addClass("selected").siblings().removeClass("selected");
var href = $(this).attr('href');
$("#content").load(href);
});
我可以使用基本的 jQuery UI 选项卡将 div id 添加到 url 中:
if($(".tab-set") && document.location.hash){
$.scrollTo(".tab-set");
}
$(".tab-set ul").localScroll({
duration:300,
hash:true
});
使用 localScroll 和scrollTo 插件。有什么建议吗?这不应该这么难!
I have the following html strucuture
<div id-"top">
<ul id="tabs">
<li><a href="#tab-content-1">tab 1</a></li>
<li><a href="#tab-content-2">tab 2</a></li>
<li><a href="#tab-content-3">tab 3</a></li>
</ul>
<!--/top--></div>
<div id="content">
<div id="tab-content-1">content 1</div>
<div id="tab-content-2">content 2</div>
<div id="tab-content-3">content 3</div>
<!--/bottom--></div>
From what I can see and in other uses, jQuery UI tabs requires the ul and the content to be in the same container, which mine aren't.
So I went with the .load() function - I changed the link's from "#tab-content-1" to "AjaxPages/tab-content-1.html" respectively for this method, and have the following code that works, but I can't get it to append the url so it would reflect the visible content so they are bookmarkable and able to be linked to directly.
$(function() {
$('#content').load('AjaxPages/tab-content-1.html');
});
$("#tabs li a").click(function(e) {
e.preventDefault();
var $parent = $(this).parent();
$parent.addClass("selected").siblings().removeClass("selected");
var href = $(this).attr('href');
$("#content").load(href);
});
I can add the div id to the url with basic jQuery UI tabs with this:
if($(".tab-set") && document.location.hash){
$.scrollTo(".tab-set");
}
$(".tab-set ul").localScroll({
duration:300,
hash:true
});
with the localScroll and scrollTo plugins. Any advice? this shouldn't be this hard!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我做了一个 jsfiddle 但无法完全测试它,因为你无法处理地址栏中的哈希值,至少点击链接可以按预期工作,希望有帮助。
HTML
JS
I made a jsfiddle but can't test it entirely because you can't handle hashes from the address bar, at least clicking a link works as expected, hope it helps.
HTML
JS