jQuery 自定义标签无法正常工作
jQuery custom tabs not working correctly
我有点难以理解为什么我的选项卡内容无法正确切换,似乎只能在最后一个选项卡上工作。有人有什么想法吗?
https://jsfiddle.net/x04o2kb6/
JS:
$(document).ready(function($) {
var activateTab = function(index) {
var tab = $(".tabs-menu li:eq(" + index + ")"),
tabContent = $(".tab div:eq(" + index + ")");
tab.addClass("active");
tab.siblings().removeClass("active");
tabContent.siblings().css("display", "none");
tabContent.show();
}
var automation = {
start: function() {
this.current = setInterval(function() {
var currentIndex = $(".tabs-menu li.active").index(),
max = $(".tabs-menu li.active").parent().children().length;
activateTab(currentIndex + 1 < max ? currentIndex + 1 : 0);
}, 2000);
},
stop: function() {
if (this.current) {
clearInterval(this.current);
}
}
}
$(".tabs-menu a").click(function(event) {
event.preventDefault();
activateTab($(event.currentTarget).parent().index());
});
//automation.start();
});
如下更改您的 activateTab 函数 -
var activateTab = function(index) {
var tab = $(".tabs-menu li:eq(" + index + ")"),
tabContent = $(".tab > div:eq(" + index + ")");
tab.addClass("active");
tab.siblings().removeClass("active");
tabContent.siblings().css("display", "none");
tabContent.show();
}
有错误 css select 或者,当您 selecting 选项卡内容 div 时。仅将此用于 select 孩子 tabContent = $(".tab > div:eq(" + index + ")");
您的css select或选择了所有div。
您没有提到正确的 tabContent
。它总是用来获取 index
,即无论你传递给函数什么,都可以是 3、2,并且无论其层次结构如何,都会获取特定的 div
。只需更改为确切的 class:
tabContent = $(".tab div.mainFeatureCopy:eq(" + index + ")");
在这里引用 div
及其 class 即 mainFeatureCopy
请检查我已经更新了tabContent = $(".tab>div:eq(" + index + ")");
检查Fiddle
tabContent = $(".tab div:eq(" + index + ")")
没有得到正确的对象,你应该使用
tabContent = $(".tab-content:eq(" + index + ")")
我有点难以理解为什么我的选项卡内容无法正确切换,似乎只能在最后一个选项卡上工作。有人有什么想法吗?
https://jsfiddle.net/x04o2kb6/
JS:
$(document).ready(function($) {
var activateTab = function(index) {
var tab = $(".tabs-menu li:eq(" + index + ")"),
tabContent = $(".tab div:eq(" + index + ")");
tab.addClass("active");
tab.siblings().removeClass("active");
tabContent.siblings().css("display", "none");
tabContent.show();
}
var automation = {
start: function() {
this.current = setInterval(function() {
var currentIndex = $(".tabs-menu li.active").index(),
max = $(".tabs-menu li.active").parent().children().length;
activateTab(currentIndex + 1 < max ? currentIndex + 1 : 0);
}, 2000);
},
stop: function() {
if (this.current) {
clearInterval(this.current);
}
}
}
$(".tabs-menu a").click(function(event) {
event.preventDefault();
activateTab($(event.currentTarget).parent().index());
});
//automation.start();
});
如下更改您的 activateTab 函数 -
var activateTab = function(index) {
var tab = $(".tabs-menu li:eq(" + index + ")"),
tabContent = $(".tab > div:eq(" + index + ")");
tab.addClass("active");
tab.siblings().removeClass("active");
tabContent.siblings().css("display", "none");
tabContent.show();
}
有错误 css select 或者,当您 selecting 选项卡内容 div 时。仅将此用于 select 孩子 tabContent = $(".tab > div:eq(" + index + ")");
您的css select或选择了所有div。
您没有提到正确的 tabContent
。它总是用来获取 index
,即无论你传递给函数什么,都可以是 3、2,并且无论其层次结构如何,都会获取特定的 div
。只需更改为确切的 class:
tabContent = $(".tab div.mainFeatureCopy:eq(" + index + ")");
在这里引用 div
及其 class 即 mainFeatureCopy
请检查我已经更新了tabContent = $(".tab>div:eq(" + index + ")");
检查Fiddle
tabContent = $(".tab div:eq(" + index + ")")
没有得到正确的对象,你应该使用
tabContent = $(".tab-content:eq(" + index + ")")