我有以下脚本:
var SwitchTabs = function(container, tabs, activeclass, which) {
var tabContainers = $(container + ' > div');
var index = 0;
var tabnum = (which) ? parseInt(which) - 1 : 0;
tabContainers.filter(':eq(' + tabnum + ')').css({'display':'block'});
$(container + ' > ' + tabs).find('a').click(function(){
index = $(this).parent().index();
tabContainers.css({'display':'none'}).filter(':eq(' + index + ')').show();
$(container + ' ' + tabs + ' ' + ' a').removeClass(activeclass);
$(this).addClass(activeclass);
}).filter(':eq(' + tabnum + ')').click();
}
$(function(){
SwitchTabs('div.tabs', 'ul.mostpouplar', 'active', 1);
});
标记:
<div class="tabs rrmodule">
<h3>Popular</h3>
<ul class="mostpopular">
<li><a href="#">Most Viewed</a></li>
<li><a href="#">Most Commented</a></li>
</ul>
<div>
Some content - tab 1
</div>
<div>
Some content - tab 2
</div>
</div>
以上(根据代码)应该将类设置为第一个锚元素并在页面加载时显示第一个DIV。然后显示DIV并根据点击设置锚类。我正在使用jquery 1.4.4。由于某种原因,click不起作用,onload设置类和显示DIV都不起作用!我认为代码非常简单。有人可以帮我这个。
谢谢, →
答案 0 :(得分:1)
有几个问题,您不应该使用JavaScript关键字which
作为参数名称。此外,您将ui.mostpopular
拼错为ul.mostpouplar
。这是工作:
答案 1 :(得分:0)
你想要这样的东西:http://jqueryui.com/demos/tabs使用jQuery UI。 或jQuery工具:标签:http://flowplayer.org/tools/tabs/index.html。
答案 2 :(得分:0)
解决方案JSFiddle :: https://jsfiddle.net/incorelabs/mg6e4ren/
实现选项卡非常简单,我已经针对您的问题修改了HTML。删除了锚标签因为它们不是必需的。
HTML
<ul>
<li class="tab-switcher" data-tab-index="0">test1</li>
<li class="tab-switcher" data-tab-index="1">test2</li>
<li class="tab-switcher" data-tab-index="2">test3</li>
<li class="tab-switcher" data-tab-index="3">test4</li>
</ul>
<div id="allTabsContainer">
<div class="tab-container" data-tab-index="0">Some content - 1</div>
<div class="tab-container" data-tab-index="1" style="display:none;">Some content - 2</div>
<div class="tab-container" data-tab-index="2" style="display:none;">Some content - 3</div>
<div class="tab-container" data-tab-index="3" style="display:none;">Some content - 4</div>
</div>
HTML De-Mystified
的jQuery
$(document).ready(function () {
var previousActiveTabIndex = 0;
$(".tab-switcher").on('click', function () {
var tabClicked = $(this).data("tab-index");
if(tabClicked != previousActiveTabIndex) {
$("#allTabsContainer .tab-container").each(function () {
if($(this).data("tab-index") == tabClicked) {
$(".tab-container").hide();
$(this).show();
previousActiveTabIndex = $(this).data("tab-index");
return;
}
});
}
});
});
jQuery De-Mystified
如果有疑问或有人有建议,请对帖子发表评论。